1. 程式人生 > >Myeclipse搭建SpringMVC-Spring-hibernate框架

Myeclipse搭建SpringMVC-Spring-hibernate框架

最近的工作需求改了又改,麻煩的狠,就暫停更博,之前一週寫的這個框架搭建完成,有點心得,記錄一下

之前網上有搭建的這個框架但是是用eclipse,我們今天就用myeclipse搭建一下框架

原文章eclipse搭建連結地址

說明

1.搭建SpringMVC+spring+hibernate的框架,專案結構如圖1所示



引用的jar包為Spring3.2.6和Hibernate4,如圖2所示


1.配置檔案

1.1spring-mvc.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans   
    http://www.springframework.org/schema/beans/spring-beans.xsd  
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context-3.2.xsd  
    http://www.springframework.org/schema/mvc  
    http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"
	default-autowire="byName">
	   <!-- 開啟註解,java檔案裡的@ -->
	   <mvc:annotation-driven/>
	   <!-- 註解掃描包,注意換成自己的路徑 -->
	   <context:component-scan base-package="com.lq.controller">
	   <!-- 只掃描@Controller的部分 -->
	      <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
	   </context:component-scan>
	   <!-- 完成請求和註解POJO的對映 -->
	   <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"></bean>
	   <!-- 靜態資源(js/image)的訪問 ,可新增多個,這樣jsp頁面才能訪問到樣式檔案和js檔案 -->
	   <mvc:resources location="/js/" mapping="/js/**" />
	   <mvc:resources location="/css/" mapping="/css/**" />
	   <mvc:resources location="/img/" mapping="/img/**" />
	   <!-- 處理檢視jsp介面,跳轉jsp路徑需要,自己的jsp放到哪裡就要寫哪裡的路徑 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/view/"></property> <property name="suffix" value=".jsp"></property> </bean> <!-- springMVC攔截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**" /> <bean class="com.lq.interceptor.SessionIntercptor"> </bean> </mvc:interceptor> </mvc:interceptors> </beans>

1.2spring-common.xml

寫的註釋比較詳細,大家仔細看看哦!
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        ">
        <!-- 只解析controller之外的註解(即解析Service,dao),避免重複載入導致事物失效  -->
       <context:component-scan base-package="com.lq">
        <!-- annotation為spting-mvc中解析的內容 -->
         <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
       </context:component-scan>
       <!-- 配置資料來源 -->
       <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
        <property name="url" value="jdbc:sqlserver://192.168.3.213:1433;databaseName=test"></property>
        <property name="username" value="sa213"></property>
        <property name="password" value="pdwy"></property>
       </bean>
       
       <!-- 配置SeesionFactory -->
       <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <!-- packagesToScan 掃描包所在路徑(name中的內容其實是個關鍵字,可以掃描一整個包) -->
        <property name="packagesToScan">
         <list>
           <value>com.lq.entity</value>
         </list>        
        </property>
        <!-- 定義Hibernate的SessionFactory的屬性 -->
        <property name="hibernateProperties">
         <props> 
            <!-- 指定資料庫方言 -->
          <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
           <!-- 是否根據需要每次自動建立資料庫   第一次生成資料庫的時候用create,之後換成update,否則內容會清空  -->
          <prop key="hibernate.hbm2ddl.auto">create</prop>
            <!-- 顯示Hibernate持久化操作所生成的SQL -->
          <prop key="hibernate.show_sql">true</prop>
           <!-- 將SQL指令碼進行格式化後再輸出 -->
          <prop key="hibernate.format_sql">true</prop>
          <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop>
         </props>
        </property>
       </bean>
        <!-- 配置一個事務管理器 -->
        <!-- 配置Hibernate的區域性事務管理器,使用HibernateTransactionManager類 -->
        <!-- 該類實現PlatformTransactionManager介面,是針對Hibernate的特定實現-->
       <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
         <!-- 配置HibernateTransactionManager時需要依注入SessionFactory的引用 -->
         <property name="sessionFactory" ref="sessionFactory"></property>
       </bean>
       <!-- 配置事務切面Bean,指定事務管理器 -->
       <tx:advice id="txAdvice" transaction-manager="transactionManager">
         <!-- 用於配置詳細的事務語義 -->
         <tx:attributes>
          <!-- 攔截的是下段配置aop裡設定的路徑,既txPointcut中配置的路徑  -->
          <!-- propagation="REQUIRED"事物傳播行為 -->
          <tx:method name="save*" propagation="REQUIRED"/>
          <tx:method name="add*" propagation="REQUIRED"/>
          <tx:method name="create*" propagation="REQUIRED"/>
          <tx:method name="insert*" propagation="REQUIRED"/>
          <tx:method name="update*" propagation="REQUIRED"/>
          <tx:method name="merge*" propagation="REQUIRED"/>
          <tx:method name="del*" propagation="REQUIRED"/>
          <tx:method name="remove*" propagation="REQUIRED"/>
          <tx:method name="put*" propagation="REQUIRED"/>
          <tx:method name="use*" propagation="REQUIRED"/>
          <!--hibernate4必須配置為開啟事務 否則 getCurrentSession()獲取不到 -->
          <tx:method name="get*" propagation="REQUIRED" read-only="true"/>
          <tx:method name="count*" propagation="REQUIRED" read-only="true"/>
          <tx:method name="find*" propagation="REQUIRED" read-only="true"/>
          <tx:method name="list*" propagation="REQUIRED" read-only="true"/>
          <tx:method name="*" propagation="REQUIRED" read-only="true"/>
         </tx:attributes>
       </tx:advice>
       <aop:config expose-proxy="true">
         <!-- 只對業務邏輯層(service層)實施事務 -->
         <!-- <aop:pointcut id="txPointcut" expression="execution(* com.lq.service.*.*)" /> -->
        <aop:pointcut id="txPointcut" expression="execution(* com.lq.service..*.*(..))" />
        <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
       </aop:config>
       
  </beans>

1.3web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
  <display-name>Spring-MVC-model</display-name>	
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
   <!-- 載入所有的配置檔案 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:config/spring/spring-*.xml</param-value>
  </context-param>
  <listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- 配置SpringMVC -->
  <servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath*:config/spring/spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>  
  <!-- 配置字符集 -->
  <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <!-- 配置session -->
  <filter>
   <filter-name>openSession</filter-name>
   <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
  </filter>
  <filter-mapping>
   <filter-name>openSession</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

2實體類

2.1User1

這個類等於實體類,可以逆向過來呦 生成註解實體類連結有需要的可以看看

package com.lq.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * User1 entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "User1", schema = "dbo", catalog = "test")
public class User1 implements java.io.Serializable {

	// Fields

	private Integer id;
	private String age;
	private String userName;
	private String password;

	// Constructors

	/** default constructor */
	public User1() {
	}

	/** full constructor */
	public User1(String age, String userName, String password) {
		this.age = age;
		this.userName = userName;
		this.password = password;
	}

	// Property accessors
	@Id
	@GeneratedValue
	@Column(name = "id", unique = true, nullable = false)
	public Integer getId() {
		return this.id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	@Column(name = "age", length = 50)
	public String getAge() {
		return this.age;
	}

	public void setAge(String age) {
		this.age = age;
	}

	@Column(name = "userName", length = 50)
	public String getUserName() {
		return this.userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	@Column(name = "password", length = 50)
	public String getPassword() {
		return this.password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

}

3.Dao層

3.1UserDao

package com.lq.dao;

import java.util.List;

import com.lq.entity.User1;

public interface UserDao {
   public User1 getUser(int id);
   public List<User1> getAllUser();
   public void addUser(User1 user);
   public boolean delUser(int id);
   public boolean updateUser(User1 user);
   
   public List<User1> login(String userName,String password);
}

3.2UserDaoImpl

package com.lq.dao;

import java.util.List;

import javax.annotation.Resource;

import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository;

import com.lq.entity.User1;
//注入
@Repository
public class UserDaoImpl implements UserDao {
	 //注入已在spring-common.xml中配製好的sessionFactory
	@Resource(name="sessionFactory")
	private SessionFactory sessionFactory;

	@Override
	public User1 getUser(int id) {
		String hql="from User1 u where u.id=?";
		Query query=sessionFactory.getCurrentSession().createQuery(hql);
		query.setInteger(0,id);
		return (User1) query.uniqueResult();
	}

	@Override
	public List<User1> getAllUser() {
		String hql="from User1";
		Query query=sessionFactory.getCurrentSession().createQuery(hql);
		return query.list();
	}

	@Override
	public void addUser(User1 user) {
		sessionFactory.getCurrentSession().save(user);
	}

	@Override
	public boolean delUser(int id) {
		String hql="delete User1 u where u.id=?";
		Query query=sessionFactory.getCurrentSession().createQuery(hql);
		query.setInteger(0, id);
		return (query.executeUpdate()>0);
	}

	@Override
	public boolean updateUser(User1 user) {
	   String hql="update User1 u set u.userName=?,u.age=? where u.id=?";
	   Query query = sessionFactory.getCurrentSession().createQuery(hql);
	   query.setString(0, user.getUserName());
	   query.setString(1, user.getAge());
	   query.setInteger(2, user.getId());
	   return (query.executeUpdate()>0);
	}

	@Override
	public List<User1> login(String userName,String password) {
		String hql="from User1 u where u.userName=? and u.password=?";
		Query query=sessionFactory.getCurrentSession().createQuery(hql);
		query.setString(0, userName);
		query.setString(1, password);
		return query.list();
	}

	

}

4.Service層

4.1UserService

package com.lq.service;

import java.util.List;

import com.lq.entity.User1;

public interface UserService {
	//查詢id
   public User1 getUser(int id);
   //查詢所有user表
   public List<User1> getAllUser();
   //新增user表
   public void addUser(User1 user);
   //刪除一個id
   public boolean delUser(int id);
   //更新user表
   public boolean updateUser(User1 user);
   public List<User1> login(String userName,String password);
}

4.2UserServiceImpl

package com.lq.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.lq.dao.CustomerDao;
import com.lq.dao.UserDao;
import com.lq.entity.User1;
//注入service
@Service
public class UserServiceImpl implements UserService{
    //注入Dao
	@Autowired
	private UserDao userDao;
	
	@Autowired
	private CustomerDao customerDao;
	
	@Override
	public User1 getUser(int id) {
		return userDao.getUser(id);
	}

	@Override
	public List<User1> getAllUser() {
		return userDao.getAllUser();
	}

	@Override
	public void addUser(User1 user) {
		userDao.addUser(user);
	}

	@Override
	public boolean delUser(int id) {
		return userDao.delUser(id);
	}

	@Override
	public boolean updateUser(User1 user) {
		return userDao.updateUser(user);
	}

	@Override
	public List<User1> login(String userName, String password) {
		return userDao.login(userName, password);
	}

}

5.Controller層

5.1loginController

package com.lq.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.lq.entity.User1;
import com.lq.service.UserService;

//注入controller
@Controller
@RequestMapping("/login")
public class loginController {
	// 注入service
	@Autowired
	private UserService userService;

	@RequestMapping("/cheklogin")
	public void cheklogin(String username, String password,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException {
		PrintWriter out = response.getWriter();
		List<User1> user1s = userService.login(username, password);
		if (user1s.size() > 0) {
			 HttpSession session=request.getSession();  
			 session.setAttribute("user","1");
			out.print("1");
		} else {
			out.print("0");
		}
	}
}

5.2UserController

今天的登入的例子不會需要這麼多的方法,但是都貼出來有需要的可以用
package com.lq.controller;

import java.io.IOException;
import java.io.PrintWriter;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.lq.entity.User1;
import com.lq.service.CustomarService;
import com.lq.service.UserService;

//注入controller
@Controller
@RequestMapping("/df")
public class UserController {
	 //注入service
    @Autowired
    private UserService userService;

    @Autowired
    private CustomarService customerService;
    
    @RequestMapping("/getAllUser")
    public String getAllUser(HttpServletRequest request){
    	request.setAttribute("userList", userService.getAllUser());
    	return "/selectUser/index";
    }
    @RequestMapping("/getUser")
    public String getUser(int id, HttpServletRequest request) {
        request.setAttribute("user", userService.delUser(id));
        return "/editUser";
    }

    @RequestMapping("/toAddUser")
    public String toAddUser() {
        return "/addUser";
    }

    @RequestMapping("/addUser")
    public String addUser(User1 user, HttpServletRequest request) {
        try {
            userService.addUser(user);
            return "redirect:/user/getAllUser";
        } catch (Exception e) {
            return "/error";
        }       
    }

    @RequestMapping("/delUser")
    public void delUser(int id, HttpServletResponse response) {
        String result = "{\"result\":\"error\"}";

        if (userService.delUser(id)) {
            result = "{\"result\":\"success\"}";
        }
        response.setContentType("application/json");
        try {
            PrintWriter out = response.getWriter();
            out.write(result);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @RequestMapping("/updateUser")
    public String updateUser(User1 user, HttpServletRequest request) {
        if (userService.updateUser(user)) {
            user = userService.getUser(user.getId());
            request.setAttribute("user", user);
            return "redirect:/user/getAllUser";
        } else {
            return "/error";
        }
    }
}

6.前臺介面

6.1login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<link rel="stylesheet" href="${pageContext.request.contextPath}/css/reset.css" />
	<link rel="stylesheet" href="${pageContext.request.contextPath}/css/login.css" />
        <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
        <script type="text/javascript" src="${pageContext.request.contextPath}/js/login.js"></script>
	<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.11.1.min.js"></script>  
  </head>
  <script type="text/javascript">
  //登入
  function LoginDate(){
	  var username=$("#username").val();
	  var password=$("#password").val();
	  $.ajax({
	    	url:"/Spring-MVC-model/login/cheklogin",
	    	type:"post",
	    	async:false,
	    	data:{"username":username,"password":password},
	    	success:function(data){
	    		if(data=="1"){
	    			alert("登入成功");
	    			window.location.href="/Spring-MVC-model/df/getAllUser"
	    		}else{
	    			$("#error").text("使用者名稱或密碼錯誤")
	    		}
	    	}
	    })
  }
  </script>
  <body>
  <div class="page">
	<div class="loginwarrp">
		<div class="logo">管理員登陸</div>
        <div class="login_form">
				<li class="login-item">
					<span>使用者名稱:</span>
					<input type="text" id="username" name="username" class="login_input" >
                                        <span id="count-msg" class="error"></span>
				</li>
				<li class="login-item">
					<span>密 碼:</span>
					<input type="password" id="password" name="password" class="login_input" >
                                        <span id="password-msg" class="error"></span>
				</li>
				<li class="login-sub">
					<input type="submit" name="button" value="登入" onclick="LoginDate();"/><span id="error" style="color: red"></span>
                    <%--<input type="reset" name="Reset" value="重置" /> --%>
				</li>
		</div>
	</div>
	</div>
  </body>
</html>

6.2index.jsp 

歡迎頁面,還沒有操作,有時間繼續更
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<link href="${pageContext.request.contextPath}/css/bootstrap.css" rel="stylesheet">
	<link href="${pageContext.request.contextPath}/css/site.css" rel="stylesheet">
    <link href="${pageContext.request.contextPath}/css/bootstrap-responsive.css" rel="stylesheet">
	<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.11.1.min.js"></script> 
</head>
<script type="text/javascript">
</script>
 <body>
  <body>
    <div class="navbar navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container-fluid">
          <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </a>
          <a class="brand" href="#">Strass Administration</a>
          <div class="btn-group pull-right">
			<a class="btn" href="my-profile.html"><i class="icon-user"></i> Admin</a>
            <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
              <span class="caret"></span>
            </a>
            <ul class="dropdown-menu">
			  <li><a href="my-profile.html">Profile</a></li>
              <li class="divider"></li>
              <li><a href="#">Logout</a></li>
            </ul>
          </div>
          <div class="nav-collapse">
            <ul class="nav">
			<li><a href="index.html">Home</a></li>
              <li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Users <b class="caret"></b></a>
				<ul class="dropdown-menu">
					<li><a href="new-user.html">New User</a></li>
					<li class="divider"></li>
					<li><a href="users.html">Manage Users</a></li>
				</ul>
			  </li>
              <li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Roles <b class="caret"></b></a>
				<ul class="dropdown-menu">
					<li><a href="new-role.html">New Role</a></li>
					<li class="divider"></li>
					<li><a href="roles.html">Manage Roles</a></li>
				</ul>
			  </li>
			  <li><a href="stats.html">Stats</a></li>
            </ul>
          </div>
        </div>
      </div>
    </div>

    <div class="container-fluid">
      <div class="row-fluid">
        <div class="span3">
          <div class="well sidebar-nav">
            <ul class="nav nav-list">
              <li class="nav-header"><i class="icon-wrench"></i> Administration</li>
              <li class="active"><a href="users.html">Users</a></li>
              <li><a href="roles.html">Roles</a></li>
              <li class="nav-header"><i class="icon-signal"></i> Statistics</li>
              <li><a href="stats.html">General</a></li>
              <li><a href="user-stats.html">Users</a></li>
              <li><a href="visitor-stats.html">Visitors</a></li>
              <li class="nav-header"><i class="icon-user"></i> Profile</li>
              <li><a href="my-profile.html">My profile</a></li>
              <li><a href="#">Settings</a></li>
			  <li><a href="#">Logout</a></li> 
            </ul>
          </div>
        </div>
        <div class="span9">
          <div class="well hero-unit">
            <h1>Welcome, Admin</h1>
            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam eget ligula eu lectus lobortis condimentum. Aliquam nonummy auctor massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. </p>
            <p><a class="btn btn-success btn-large" href="users.html">Manage Users »</a></p>
          </div>
          <div class="row-fluid">
            <div class="span3">
              <h3>Total Users</h3>
              <p><a href="users.html" class="badge badge-inverse">563</a></p>
            </div>
            <div class="span3">
              <h3>New Users Today</h3>
              <p><a href="users.html" class="badge badge-inverse">8</a></p>
            </div>
            <div class="span3">
              <h3>Pending</h3>
			  <p><a href="users.html" class="badge badge-inverse">2</a></p>
            </div>
            <div class="span3">
              <h3>Roles</h3>
			  <p><a href="roles.html" class="badge badge-inverse">3</a></p>
            </div>
          </div>
		  <br />
		  <div class="row-fluid">
			<div class="page-header">
				<h1>Pending Users <small>Approve or Reject</small></h1>
			</div>
			<table class="table table-bordered">
				<thead>
					<tr>
						<th>ID</th>
						<th>Name</th>
						<th>E-mail</th>
						<th>Phone</th>
						<th>City</th>
						<th>Role</th>
						<th>Status</th>
						<th>Actions</th>
					</tr>
				</thead>
				<tbody>
				<tr class="pending-user">
					<td>564</td>
					<td>John S. Schwab</td>
					<td>[email protected]</td>
					<td>402-xxx-xxxx</td>
					<td>Bassett, NE</td>
					<td>User</td>
					<td><span class="label label-important">Inactive</span></td>
					<td><span class="user-actions"><a href="javascript:void(0);" class="label label-success">Approve</a> <a href="javascript:void(0);" class="label label-important">Reject</a></span></td>
				</tr>
				<tr class="pending-user">
					<td>565</td>
					<td>Juliana M. Sheffield</td>
					<td>[email protected]</td>
					<td>803-xxx-xxxx</td>
					<td>Columbia, SC</td>
					<td>User</td>
					<td><span class="label label-important">Inactive</span></td>
					<td><span class="user-actions"><a href="javascript:void(0);" class="label label-success">Approve</a> <a href="javascript:void(0);" class="label label-important">Reject</a></span></td>
				</tr>
				</tbody>
			</table>
		  </div>
        </div>
      </div>
      <hr>
      <footer class="well">
        &copy; Strass - More Templates <a href="http://www.cssmoban.com/" target="_blank" title="模板之家">模板之家</a> - Collect from <a href="http://www.cssmoban.com/" title="網頁模板" target="_blank">網頁模板</a>
      </footer>
    </div>
 </body>
  <script src="${pageContext.request.contextPath}/js/jquery.js"></script>
<script src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
</html>

到現在為止所有的框架搭建完美成功

附上原始碼框架地址: http://download.csdn.net/download/dfbeautifullive/9905065  jar包都在這裡可以複製過來,免得報錯

tomcat啟動,就會出現登入介面


登入成功過後就會進入首介面,這是我下載bootstrap模板,修改修改可以做來簡單的系統



暫時做到這些,後期我有時間會在做一些功能在這個搭的框架裡的。