JavaWeb之ssm框架整合,用户角色权限管理

SSM框架整合

Spring

SpringMVC

MyBatis

导包: 1, spring 2, MyBatis 3, mybatis-spring 4, fastjson 5, aspectweaver----AspectJ框架 6, log4j-----打印日志信息 7, ojdbc6.jar 8, jstl.jar, standard.jar----标准标签库 9, commons-logging-1.2.jar

src下建立包结构

配置web.xml,spring-mvc.xml,spring-all.xml

建立表结构,使用PowerDesigner

前台页面,后台方法等。

 项目结构:

代码(引用,未完全实现):

配置文件:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns="http://java.sun.com/xml/ns/javaee"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 5     id="WebApp_ID" version="3.0">
 6     
 7     <!-- 告诉web容器log4j的属性文件所在位置 -->
 8     <context-param>
 9         <param-name>log4jConfigLocation</param-name>
10         <param-value>classpath:conf/log4j.properties</param-value>
11     </context-param>
12     <listener>
13         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
14     </listener>
15     
16     <!-- spring框架提供的字符编码过滤器 -->
17     <filter>
18         <filter-name>characterEncodingFilter</filter-name>
19         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
20         <init-param>
21             <param-name>encoding</param-name>
22             <param-value>UTF-8</param-value>
23         </init-param>
24         <init-param>
25             <param-name>forceEncoding</param-name>
26             <param-value>true</param-value>
27         </init-param>
28     </filter>
29     <filter-mapping>
30         <filter-name>characterEncodingFilter</filter-name>
31         <url-pattern>/*</url-pattern>
32     </filter-mapping>
33 
34     <!-- 加载Spring的配置文件 -->
35     <context-param>
36         <param-name>contextConfigLocation</param-name>
37         <param-value>classpath:conf/spring-config.xml</param-value>
38     </context-param>
39     <listener>
40         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
41     </listener>
42     
43     <!-- 加载SpringMVC的配置文件 -->
44     <servlet>
45         <servlet-name>springDispatcherServlet</servlet-name>
46         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
47         <init-param>
48             <param-name>contextConfigLocation</param-name>
49             <param-value>classpath:conf/spring-mvc.xml</param-value>
50         </init-param>
51         <load-on-startup>1</load-on-startup>
52     </servlet>
53     <servlet-mapping>
54         <servlet-name>springDispatcherServlet</servlet-name>
55         <url-pattern>*.do</url-pattern>
56     </servlet-mapping>
57 </web-app>
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns="http://java.sun.com/xml/ns/javaee"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 5     id="WebApp_ID" version="3.0">
 6     
 7     <!-- 告诉web容器log4j的属性文件所在位置 -->
 8     <context-param>
 9         <param-name>log4jConfigLocation</param-name>
10         <param-value>classpath:conf/log4j.properties</param-value>
11     </context-param>
12     <listener>
13         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
14     </listener>
15     
16     <!-- spring框架提供的字符编码过滤器 -->
17     <filter>
18         <filter-name>characterEncodingFilter</filter-name>
19         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
20         <init-param>
21             <param-name>encoding</param-name>
22             <param-value>UTF-8</param-value>
23         </init-param>
24         <init-param>
25             <param-name>forceEncoding</param-name>
26             <param-value>true</param-value>
27         </init-param>
28     </filter>
29     <filter-mapping>
30         <filter-name>characterEncodingFilter</filter-name>
31         <url-pattern>/*</url-pattern>
32     </filter-mapping>
33 
34     <!-- 加载Spring的配置文件 -->
35     <context-param>
36         <param-name>contextConfigLocation</param-name>
37         <param-value>classpath:conf/spring-config.xml</param-value>
38     </context-param>
39     <listener>
40         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
41     </listener>
42     
43     <!-- 加载SpringMVC的配置文件 -->
44     <servlet>
45         <servlet-name>springDispatcherServlet</servlet-name>
46         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
47         <init-param>
48             <param-name>contextConfigLocation</param-name>
49             <param-value>classpath:conf/spring-mvc.xml</param-value>
50         </init-param>
51         <load-on-startup>1</load-on-startup>
52     </servlet>
53     <servlet-mapping>
54         <servlet-name>springDispatcherServlet</servlet-name>
55         <url-pattern>*.do</url-pattern>
56     </servlet-mapping>
57 </web-app>
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:context="http://www.springframework.org/schema/context"
 5     xmlns:mvc="http://www.springframework.org/schema/mvc"
 6     xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
 7         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
 8         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
 9     
10     <!-- 配置扫描器 -->
11     <context:component-scan base-package="com.hanqi.controller" />
12     
13     <!-- 配置视图解析器 -->
14     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
15         <!-- <property name="prefix" value="/WEB-INF/"></property> -->
16         <property name="prefix" value="/"></property>
17         <property name="suffix" value=".jsp"></property>
18     </bean>
19     
20     <!-- 上传文件的解析器 -->
21     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
22         <!-- 上传文件的总大小, 单位是b -->
23         <property name="maxUploadSize" value="10240000"></property>
24         <!-- 单个文件的上传大小限制, 单位是b -->
25         <property name="maxUploadSizePerFile" value="1000000"></property>
26         <!-- 默认字符集 -->
27         <property name="defaultEncoding" value="utf-8"></property>
28     </bean>
29     
30     <!-- 开启SpringMVC注解驱动 -->
31     <mvc:annotation-driven>
32         <!-- 改成false, 原因是在spring中默认使用的json格式的转换器是Jackson.jar中的转换器, 但实际开发中更受欢迎的是fastjson.jar -->
33         <mvc:message-converters register-defaults="false">
34             <bean class="org.springframework.http.converter.StringHttpMessageConverter" />
35             <bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" />
36             <bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter" />
37             <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
38             <bean id="fastJsonHttpMessagerConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
39                 <!-- 设置支持的媒体类型 -->
40                 <property name="supportedMediaTypes">
41                     <list>
42                         <value>text/html; charset=utf-8</value>
43                         <value>application/json; charset=utf-8</value>
44                     </list>
45                 </property>
46             </bean>
47         </mvc:message-converters>
48     </mvc:annotation-driven>
49 </beans>

src下:

model层实体类:

 1 package com.hanqi.model;
 2 
 3 public class SrUserRole {
 4     private Integer id;
 5     private Integer userid;
 6     private Integer roleid;
 7 
 8     public SrUserRole() {
 9         super();
10     }
11 
12     public SrUserRole(Integer id, Integer userid, Integer roleid) {
13         super();
14         this.id = id;
15         this.userid = userid;
16         this.roleid = roleid;
17     }
18 
19     public Integer getId() {
20         return id;
21     }
22 
23     public void setId(Integer id) {
24         this.id = id;
25     }
26 
27     public Integer getUserid() {
28         return userid;
29     }
30 
31     public void setUserid(Integer userid) {
32         this.userid = userid;
33     }
34 
35     public Integer getRoleid() {
36         return roleid;
37     }
38 
39     public void setRoleid(Integer roleid) {
40         this.roleid = roleid;
41     }
42 }
 1 package com.hanqi.model;
 2 
 3 public class SrRoleMenu {
 4     private Integer id;
 5     private Integer roleid;
 6     private Integer menuid;
 7 
 8     public SrRoleMenu(Integer id, Integer roleid, Integer menuid) {
 9         super();
10         this.id = id;
11         this.roleid = roleid;
12         this.menuid = menuid;
13     }
14 
15     public SrRoleMenu() {
16         super();
17     }
18 
19     public Integer getId() {
20         return id;
21     }
22 
23     public void setId(Integer id) {
24         this.id = id;
25     }
26 
27     public Integer getRoleid() {
28         return roleid;
29     }
30 
31     public void setRoleid(Integer roleid) {
32         this.roleid = roleid;
33     }
34 
35     public Integer getMenuid() {
36         return menuid;
37     }
38 
39     public void setMenuid(Integer menuid) {
40         this.menuid = menuid;
41     }
42 }
 1 package com.hanqi.model;
 2 
 3 public class SrRole {
 4     private Integer id;
 5     private String rolename;
 6     private String status;
 7     private boolean checked;
 8 
 9     public SrRole() {
10         super();
11     }
12 
13     public SrRole(Integer id, String rolename, String status) {
14         super();
15         this.id = id;
16         this.rolename = rolename;
17         this.status = status;
18     }
19 
20     public Integer getId() {
21         return id;
22     }
23 
24     public void setId(Integer id) {
25         this.id = id;
26     }
27 
28     public String getRolename() {
29         return rolename;
30     }
31 
32     public void setRolename(String rolename) {
33         this.rolename = rolename;
34     }
35 
36     public String getStatus() {
37         return status;
38     }
39 
40     public void setStatus(String status) {
41         this.status = status;
42     }
43 
44     public boolean getChecked() {
45         return checked;
46     }
47 
48     public void setChecked(boolean checked) {
49         this.checked = checked;
50     }
51 }
 1 package com.hanqi.model;
 2 
 3 public class SrMenu {
 4     private Integer id;
 5     private String menuname;
 6     private String url;
 7     private String icon;
 8     private String status;
 9     private Integer parentid;
10 
11     public SrMenu() {
12         super();
13     }
14 
15     public SrMenu(Integer id, String menuname, String url, String icon, String status) {
16         super();
17         this.id = id;
18         this.menuname = menuname;
19         this.url = url;
20         this.icon = icon;
21         this.status = status;
22     }
23 
24     public Integer getId() {
25         return id;
26     }
27 
28     public void setId(Integer id) {
29         this.id = id;
30     }
31 
32     public String getMenuname() {
33         return menuname;
34     }
35 
36     public void setMenuname(String menuname) {
37         this.menuname = menuname;
38     }
39 
40     public String getUrl() {
41         return url;
42     }
43 
44     public void setUrl(String url) {
45         this.url = url;
46     }
47 
48     public String getIcon() {
49         return icon;
50     }
51 
52     public void setIcon(String icon) {
53         this.icon = icon;
54     }
55 
56     public String getStatus() {
57         return status;
58     }
59 
60     public void setStatus(String status) {
61         this.status = status;
62     }
63 
64     public Integer getParentid() {
65         return parentid;
66     }
67 
68     public void setParentid(Integer parentid) {
69         this.parentid = parentid;
70     }
71 }

dao层接口:

 1 package com.hanqi.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.hanqi.model.SrUser;
 6 
 7 public interface SrUserDao {
 8 
 9     SrUser login(SrUser srUser);
10 
11     int insertSrUser(SrUser srUser);
12 
13     List<SrUser> selectAll();
14 
15 }
 1 package com.hanqi.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.hanqi.model.SrRole;
 6 
 7 public interface SrRoleDao {
 8 
 9     List<SrRole> selectAllRoles(String userid);
10 
11     List<SrRole> selectAll();
12 
13 }
 1 package com.hanqi.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.hanqi.model.SrMenu;
 6 import com.hanqi.model.SrUser;
 7 
 8 public interface SrMenuDao {
 9 
10     List<SrMenu> selectMenus(SrUser currentUser);
11 
12 }

dao层实现方法:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <mapper namespace="com.hanqi.dao.SrUserDao">
 6 
 7     <select id="login" parameterType="SrUser" resultType="SrUser">
 8         select * from Sr_User s 
 9         <where>
10             s.username=#{username} and s.password=#{password}
11         </where>
12     </select>
13     
14     <select id="selectAll" resultType="SrUser">
15         select * from sr_user
16     </select>
17     
18     <insert id="insertSrUser" parameterType="SrUser">
19         insert into sr_user values 
20         (testsq.nextval, #{username}, #{password}, #{realname}, #{status}, null)
21     </insert>
22 </mapper>
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <mapper namespace="com.hanqi.dao.SrRoleDao">
 6 
 7     <select id="selectAllRoles" resultType="SrRole">
 8         SELECT * FROM sr_role sr WHERE sr.id IN 
 9         (SELECT sur.roleid FROM sr_user_role sur WHERE sur.userid=#{userid})
10     </select>
11     
12     <select id="selectAll" resultType="SrRole">
13         select * from sr_role
14     </select>
15 </mapper>
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <mapper namespace="com.hanqi.dao.SrMenuDao">
 6 
 7     <select id="selectMenus" parameterType="SrUser" resultType="SrMenu">
 8         SELECT * FROM SR_MENU SM
 9         WHERE SM.ID IN (SELECT SRM.MENUID
10         FROM SR_ROLE_MENU SRM
11         WHERE SRM.ROLEID = (SELECT SUR.ROLEID
12         FROM SR_USER_ROLE SUR
13         WHERE SUR.USERID = #{id}))
14     </select>
15 
16 </mapper>

controller层控制器:

 1 package com.hanqi.controller;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import org.springframework.beans.factory.annotation.Autowired;
 7 import org.springframework.stereotype.Controller;
 8 import org.springframework.ui.Model;
 9 import org.springframework.web.bind.annotation.RequestMapping;
10 import org.springframework.web.bind.annotation.ResponseBody;
11 import org.springframework.web.bind.annotation.SessionAttributes;
12 
13 import com.alibaba.fastjson.JSONObject;
14 import com.hanqi.dao.SrUserDao;
15 import com.hanqi.model.SrUser;
16 
17 @Controller
18 @SessionAttributes("currentUser")
19 @RequestMapping("sruser")
20 public class SrUserController {
21     
22     @Autowired
23     private SrUserDao srUserDao;
24 
25     @RequestMapping("/login")
26     public String login(SrUser srUser, Model model) {
27         String vname = "login";
28         model.addAttribute("user", srUser);
29         SrUser su = srUserDao.login(srUser);
30         
31         if(su!=null) {
32             vname = "index";
33             model.addAttribute("currentUser", su);
34         }
35         
36         return vname;
37     }
38     
39     @RequestMapping("/register")
40     public String register(SrUser srUser) {
41         srUser.setStatus("1");
42         int a = srUserDao.insertSrUser(srUser);
43         
44         return "regsuccess";
45     }
46     
47     @ResponseBody
48     @RequestMapping("selectAll")
49     public JSONObject selectAll() {
50         JSONObject jo = new JSONObject();
51         List<SrUser> list = srUserDao.selectAll();
52         jo.put("total", list.size());
53         jo.put("rows", list);
54         
55         return jo;
56     }
57     
58 }
package com.hanqi.controller;

import java.util.List;

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

import com.hanqi.dao.SrRoleDao;
import com.hanqi.model.SrRole;

@Controller
@RequestMapping("/role")
public class SrRoleController {

    @Autowired
    private SrRoleDao srRoleDao;

    @ResponseBody
    @RequestMapping("/selectAllRoles")
    public List<SrRole> selectAllRoles(String userid) {

        // 查询当前用户拥有的角色
        List<SrRole> list = srRoleDao.selectAllRoles(userid);
        // 查询所有的角色
        List<SrRole> listAll = srRoleDao.selectAll();

        for (int i = 0; i < list.size(); i++) {
            for (int j = 0; j < listAll.size(); j++) {
                if (listAll.get(j).getId() == list.get(i).getId()) {
                    listAll.get(j).setChecked(true);
                }
            }
        }
        return listAll;
    }
}
 1 package com.hanqi.controller;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import javax.servlet.http.HttpServletRequest;
 7 
 8 import org.springframework.beans.factory.annotation.Autowired;
 9 import org.springframework.stereotype.Controller;
10 import org.springframework.web.bind.annotation.RequestMapping;
11 import org.springframework.web.bind.annotation.ResponseBody;
12 
13 import com.hanqi.dao.SrMenuDao;
14 import com.hanqi.model.SrMenu;
15 import com.hanqi.model.SrUser;
16 
17 @Controller
18 @RequestMapping("/menu")
19 public class SrMenuController {
20 
21     @Autowired
22     private SrMenuDao srMenuDao;
23     
24     @ResponseBody
25     @RequestMapping("/selectMenus")
26     public List<SrMenu> selectMenus(HttpServletRequest request) {
27         
28         SrUser currentUser = (SrUser)request.getSession().getAttribute("currentUser");
29         
30         List<SrMenu> list = new ArrayList<SrMenu>();
31         if(currentUser!=null) {
32             list = srMenuDao.selectMenus(currentUser);
33         }
34         
35         return list;
36     }
37     
38 }

前台jsp页面:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <%
 7     String basePath = request.getContextPath();
 8 %>
 9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
10 <script type="text/javascript" src="<%=basePath %>/js/jquery-3.2.1.min.js"></script>
11 <script type="text/javascript" src="<%=basePath %>/jquery-easyui-1.5.1/jquery.easyui.min.js"></script>
12 <link type="text/css" rel="stylesheet" href="<%=basePath %>/jquery-easyui-1.5.1/themes/icon.css"></link>
13 <link type="text/css" rel="stylesheet" href="<%=basePath %>/jquery-easyui-1.5.1/themes/default/easyui.css"></link>
14 <script type="text/javascript" src="<%=basePath %>/jquery-easyui-1.5.1/locale/easyui-lang-zh_CN.js"></script>
15 <script type="text/javascript" src="<%=basePath %>/js/index.js"></script>
16 <script type="text/javascript">
17     var __ctx = "<%=basePath %>";
18 </script>
19 <title>Insert title here</title>
20 </head>
21 <body class="easyui-layout">
22     <div data-options="region:'north',title:'North Title',split:true,height:100">
23         <h1>${currentUser.realname }</h1>
24     </div>
25     <div data-options="region:'west',title:'West',split:true,width:150">
26         <ul id="treemenu" class="easyui-tree" 
27             data-options="url:'<%=basePath %>/menu/selectMenus.do',idField:'id',
28             parentField:'parentid',textField:'menuname'"></ul>
29     </div>
30     <div data-options="region:'center'">
31         <div id="tabs_userrole" class="easyui-tabs" data-options="fit:true">
32         </div>
33     </div>
34 </body>
35 </html>
  1 <%@ page language="java" contentType="text/html; charset=UTF-8"
  2     pageEncoding="UTF-8"%>
  3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4 <html>
  5 <head>
  6 <%
  7     String basePath = request.getContextPath();
  8 %>
  9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 10 <script type="text/javascript"
 11     src="<%=basePath%>/js/jquery-3.2.1.min.js"></script>
 12 <script type="text/javascript"
 13     src="<%=basePath%>/jquery-easyui-1.5.1/jquery.easyui.min.js"></script>
 14 <link type="text/css" rel="stylesheet"
 15     href="<%=basePath%>/jquery-easyui-1.5.1/themes/icon.css"></link>
 16 <link type="text/css" rel="stylesheet"
 17     href="<%=basePath%>/jquery-easyui-1.5.1/themes/default/easyui.css"></link>
 18 <script type="text/javascript"
 19     src="<%=basePath%>/jquery-easyui-1.5.1/locale/easyui-lang-zh_CN.js"></script>
 20 <title>Insert title here</title>
 21 </head>
 22 <body>
 23     <table id="userinfo" class="easyui-datagrid"
 24         data-options="toolbar:'#tools',url:'<%=basePath%>/sruser/selectAll.do',fit:true,fitColumns:true,singleSelect:true">
 25         <thead>
 26             <tr>
 27                 <th data-options="field:'',width:100,checkbox:true"></th>
 28                 <th data-options="field:'id',width:100">id</th>
 29                 <th data-options="field:'username',width:100">用户名</th>
 30                 <th data-options="field:'realname',width:100">姓名</th>
 31                 <th data-options="field:'status',width:100">状态</th>
 32                 <th data-options="field:'mark',width:100">备注</th>
 33             </tr>
 34         </thead>
 35     </table>
 36     <div id="tools">
 37         <a class="easyui-linkbutton" iconCls="icon-add" 
 38             onclick="showRoleInfos()">修改角色</a>
 39     </div>
 40     
 41     <div id="dialog_roles" class="easyui-dialog" 
 42         data-options="closed:true,width:200,height:300,title:'更改角色',modal:true">
 43         <ul id="role_tree"></ul>
 44     </div>
 45     
 46     <script type="text/javascript">
 47         function showRoleInfos() {
 48             var data = $("#userinfo").datagrid("getSelected");
 49             $("#role_tree").tree({
 50                 url:"role/selectAllRoles.do",
 51                 checkbox:true,
 52                 idField:"id",
 53                 parentField:"id",
 54                 textField:"rolename",
 55                 queryParams:{
 56                     userid:data.id
 57                 },
 58                 onCheck:function(node, checked) {
 59                     console.log(node);
 60                     console.log(checked);
 61                 }
 62             });
 63             $("#dialog_roles").dialog("open");
 64         }
 65         
 66         
 67         
 68         
 69         
 70         
 71         
 72         //easyui实现自定义simpleData加载
 73         $.fn.tree.defaults.loadFilter = function (data) {
 74             var opt = $(this).data().tree.options;//整个tree的dom对象
 75             var idField, textField, parentField;
 76             if (opt.parentField) {
 77                 idField = opt.idField || 'id';
 78                 textField = opt.textField || 'text';
 79                 parentField = opt.parentField;
 80                 var i,l,
 81                 treeData = [],
 82                 tmpMap = [];
 83                 for (i = 0, l = data.length; i < l; i++) {
 84                     tmpMap[data[i][idField]] = data[i];
 85                 }
 86                 for (i = 0, l = data.length; i < l; i++) {
 87                     if (tmpMap[data[i][parentField]] && data[i][idField] != data[i][parentField]) {
 88                         if (!tmpMap[data[i][parentField]]['children'])
 89                             tmpMap[data[i][parentField]]['children'] = [];
 90                         data[i]['text'] = data[i][textField];
 91                         tmpMap[data[i][parentField]]['children'].push(data[i]);
 92                     } else {
 93                         data[i]['text'] = data[i][textField];
 94                         treeData.push(data[i]);
 95                     }
 96                 }
 97                 return treeData;
 98             }
 99             return data;
100         };
101     </script>
102     
103     
104     
105 </body>
106 </html>
 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <form action="sruser/login.do" method="post">
11         <table>
12             <tr>
13                 <td>用户名: </td>
14                 <td><input name="username" value="${user.username }" /></td>
15             </tr>
16             <tr>
17                 <td>密码: </td>
18                 <td><input name="password" value="${user.password }" /></td>
19             </tr>
20             <tr>
21                 <td colspan="2"><input type="submit" value="登录" /></td>
22             </tr>
23         </table>
24     </form>
25 </body>
26 </html>
 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <form action="sruser/register.do" method="post">
11         <table>
12             <tr>
13                 <td>用户名: </td>
14                 <td><input name="username" /></td>
15             </tr>
16             <tr>
17                 <td>密码: </td>
18                 <td><input name="password" /></td>
19             </tr>
20             <tr>
21                 <td>确认密码: </td>
22                 <td><input name="password1" /></td>
23             </tr>
24             <tr>
25                 <td>姓名: </td>
26                 <td><input name="realname" /></td>
27             </tr>
28             <tr>
29                 <td colspan="2"><input type="submit" value="注册" /></td>
30             </tr>
31         </table>
32     </form>
33 </body>
34 </html>
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <%
 7     String basePath = request.getContextPath();
 8 %>
 9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
10 <title>Insert title here</title>
11 </head>
12 <body>
13 注册成功 !
14 <a href="<%=basePath %>/login.jsp">返回登录</a>
15 </body>
16 </html>

我写的不完全版……补全之后再贴上来

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

扫码关注云+社区

领取腾讯云代金券