zoukankan      html  css  js  c++  java
  • 基于SSH2的OA项目1.1_20161207_业务开发

    1.1建立用户的pojo模型

    建立user.java

     1 package org.guangsoft.pojo;
     2 
     3 import java.util.HashSet;
     4 import java.util.Set;
     5 
     6 /**
     7  * 用户的pojo类
     8  * @author guanghe
     9  *
    10  */
    11 public class User
    12 {
    13     //用户的基本属性
    14     private Integer uid;
    15     private String username;
    16     private String password;
    17     private String sex;
    18     private String email;
    19     private String phone;
    20     
    21     //描述用户和角色的关系(一个用户对应多个角色)
    22     private Set<Role> roles = new HashSet<Role>();
    23     //描述用户和部门的关系(多个用户对应一个部门)
    24     private Dept dept = new Dept();
    25     
    26     public Integer getUid()
    27     {
    28         return uid;
    29     }
    30     public void setUid(Integer uid)
    31     {
    32         this.uid = uid;
    33     }
    34     public String getUsername()
    35     {
    36         return username;
    37     }
    38     public void setUsername(String username)
    39     {
    40         this.username = username;
    41     }
    42     public String getPassword()
    43     {
    44         return password;
    45     }
    46     public void setPassword(String password)
    47     {
    48         this.password = password;
    49     }
    50     public String getSex()
    51     {
    52         return sex;
    53     }
    54     public void setSex(String sex)
    55     {
    56         this.sex = sex;
    57     }
    58     public String getEmail()
    59     {
    60         return email;
    61     }
    62     public void setEmail(String email)
    63     {
    64         this.email = email;
    65     }
    66     public String getPhone()
    67     {
    68         return phone;
    69     }
    70     public void setPhone(String phone)
    71     {
    72         this.phone = phone;
    73     }
    74     public Set<Role> getRoles()
    75     {
    76         return roles;
    77     }
    78     public void setRoles(Set<Role> roles)
    79     {
    80         this.roles = roles;
    81     }
    82     public Dept getDept()
    83     {
    84         return dept;
    85     }
    86     public void setDept(Dept dept)
    87     {
    88         this.dept = dept;
    89     }
    90     
    91 }

    部门pojo

     1 package org.guangsoft.pojo;
     2 
     3 import java.util.HashSet;
     4 import java.util.Set;
     5 
     6 /**
     7  * 定义部门的pojo类
     8  * @author guanghe
     9  *
    10  */
    11 public class Dept
    12 {
    13     //基本属性
    14     private Integer did;
    15     private String dname;
    16     private String ddesc;
    17     
    18     //描述部门和用户的关系(一个部门对应多个用户)
    19     private Set<User> users = new HashSet<User>();
    20     
    21     public Integer getDid()
    22     {
    23         return did;
    24     }
    25     public void setDid(Integer did)
    26     {
    27         this.did = did;
    28     }
    29     
    30     public String getDname()
    31     {
    32         return dname;
    33     }
    34     public void setDname(String dname)
    35     {
    36         this.dname = dname;
    37     }
    38     public String getDdesc()
    39     {
    40         return ddesc;
    41     }
    42     public void setDdesc(String ddesc)
    43     {
    44         this.ddesc = ddesc;
    45     }
    46     public Set<User> getUsers()
    47     {
    48         return users;
    49     }
    50     public void setUsers(Set<User> users)
    51     {
    52         this.users = users;
    53     }
    54     
    55 }

    角色的pojo

     1 package org.guangsoft.pojo;
     2 import java.util.HashSet;
     3 import java.util.Set;
     4 /**
     5  * 定义角色的pojo类
     6  * @author guanghe
     7  */
     8 public class Role
     9 {
    10     //基本属性
    11     private Integer rid;
    12     private String rname;
    13     private String rdesc;
    14     
    15     //描述角色和用户的关系
    16     private Set<User> users = new HashSet<User>();
    17     
    18     public Integer getRid()
    19     {
    20         return rid;
    21     }
    22     public void setRid(Integer rid)
    23     {
    24         this.rid = rid;
    25     }
    26     public String getRname()
    27     {
    28         return rname;
    29     }
    30     public void setRname(String rname)
    31     {
    32         this.rname = rname;
    33     }
    34     public String getRdesc()
    35     {
    36         return rdesc;
    37     }
    38     public void setRdesc(String rdesc)
    39     {
    40         this.rdesc = rdesc;
    41     }
    42     public Set<User> getUsers()
    43     {
    44         return users;
    45     }
    46     public void setUsers(Set<User> users)
    47     {
    48         this.users = users;
    49     }
    50 }

    1.2建立pojo的映射文件

    User.hbm.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE hibernate-mapping PUBLIC 
     3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     5 
     6 <hibernate-mapping package="org.guangsoft.pojo">
     7     <class name="User" table="t_user">
     8         <id name="uid" column="uid" type="java.lang.Integer">
     9             <generator class="native"></generator>
    10         </id>
    11         <property name="username" column="username" type="java.lang.String"></property>
    12         <property name="password" column="password" type="java.lang.String"></property>
    13         <property name="email" column="email" type="java.lang.String"></property>
    14         <property name="phone" column="phone" type="java.lang.String"></property>
    15         <property name="sex" column="sex" type="java.lang.String"></property>
    16         <!-- 描述用户和角色的关系 -->
    17         <set name="roles" table="user_role">
    18             <key column="uid"></key>
    19             <many-to-many class="Role" column="rid"/>
    20         </set>
    21         <!-- 描述部门和用户的关系 -->
    22         <many-to-one name="dept" class="Dept" column="did"/>
    23     </class>
    24 </hibernate-mapping>

    Role.hbm.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE hibernate-mapping PUBLIC 
     3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     5 
     6 <hibernate-mapping package="org.guangsoft.pojo">
     7     <class name="Role" table="t_role">
     8         <id name="rid" column="rid" type="java.lang.Integer">
     9             <generator class="native"></generator>
    10         </id>
    11         <property name="rname" column="rname" type="java.lang.String"></property>
    12         <property name="rdesc" column="rdesc" type="java.lang.String"></property>
    13         <set name="users" table="user_role" inverse="true">
    14             <key column="rid"></key>
    15             <many-to-many class="User" column="uid"></many-to-many>
    16         </set>
    17     </class>
    18 </hibernate-mapping>

    Dept.hbm.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE hibernate-mapping PUBLIC 
     3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     5 
     6 <hibernate-mapping package="org.guangsoft.pojo">
     7     <class name="Dept" table="t_dept">
     8         <id name="did" column="did" type="java.lang.Integer">
     9             <generator class="native"></generator>
    10         </id>
    11         <property name="dname" column="dname" type="java.lang.String"></property>
    12         <property name="ddesc" column="ddesc" type="java.lang.String"></property>
    13         <!-- 描述部门和用户的关系 -->
    14         <set name="users" inverse="true">
    15             <key column="did"></key>
    16             <one-to-many class="User"/>
    17         </set>
    18     </class>
    19 </hibernate-mapping>

    1.3定义Dao接口

    定义UserDao

     1 package org.guangsoft.dao;
     2 
     3 import java.util.List;
     4 
     5 import org.guangsoft.pojo.User;
     6 /**
     7  * 完成用户数据的访问
     8  * @author guanghe
     9  */
    10 public interface UserDao
    11 {
    12     //添加用户数据
    13     public void saveUser(User user);
    14     //查询用户列表
    15     public List<User> getAllUsers();
    16     //删除用户
    17     public void deleteUser(User user);
    18     //修改用户
    19     public void updateUser(User user);
    20     //根据id获取用户
    21     public User getUserById(User user);
    22 }

    定义RoleDao

     1 package org.guangsoft.dao;
     2 
     3 import java.util.List;
     4 
     5 import org.guangsoft.pojo.Role;
     6 /**
     7  * 完成角色数据访问
     8  * @author guanghe
     9  *
    10  */
    11 public interface RoleDao
    12 {
    13     public List<Role> getAllRoles();
    14 }

    定义DeptDao

     1 package org.guangsoft.dao;
     2 
     3 import java.util.List;
     4 
     5 import org.guangsoft.pojo.Dept;
     6 /**
     7  * 实现部门的数据访问
     8  * @author guanghe
     9  *
    10  */
    11 public interface DeptDao
    12 {
    13     //查询所有部门数据
    14     public List<Dept> getAllDepts();
    15 }

    1.4建立Dao接口的实现类

    定义UserDaoImpl

     1 package org.guangsoft.dao.impl;
     2 
     3 import java.util.List;
     4 
     5 import org.guangsoft.dao.UserDao;
     6 import org.guangsoft.pojo.Dept;
     7 import org.guangsoft.pojo.User;
     8 import org.hibernate.SessionFactory;
     9 import org.springframework.beans.factory.annotation.Autowired;
    10 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
    11 import org.springframework.stereotype.Repository;
    12 
    13 /**
    14  * 建立dao接口实现类
    15  * extends HibernateDaoSupport
    16  * 完成dao中获得session
    17  * @author guanghe
    18  */
    19 @Repository
    20 public class UserDaoImpl extends HibernateDaoSupport implements UserDao
    21 {
    22     /**
    23      * 给父类注入sessionFactory通过自动装配
    24      * @param sessionFactory
    25      */
    26     @Autowired
    27     public void setSessionFactoryAutoWire(SessionFactory sessionFactory)
    28     {
    29         super.setSessionFactory(sessionFactory);
    30     }
    31     
    32     /**
    33      * 添加用户
    34      */
    35     @Override
    36     public void saveUser(User user)
    37     {
    38         super.getHibernateTemplate().save(user);
    39     }
    40 
    41     @Override
    42     public List<User> getAllUsers()
    43     {
    44         return (List<User>)super.getHibernateTemplate().find("from User");
    45     }
    46 
    47     @Override
    48     public void deleteUser(User user)
    49     {
    50         super.getHibernateTemplate().delete(user);
    51     }
    52 
    53     @Override
    54     public void updateUser(User user)
    55     {
    56         super.getHibernateTemplate().update(user);
    57     }
    58 
    59     @Override
    60     public User getUserById(User user)
    61     {
    62         return (User) super.getHibernateTemplate().find("from User u where u.uid=?", user.getUid()).get(0);
    63     }
    64 
    65 }

    定义RoleDaoImpl

     1 package org.guangsoft.dao.impl;
     2 
     3 import java.util.List;
     4 
     5 import org.guangsoft.dao.RoleDao;
     6 import org.guangsoft.pojo.Dept;
     7 import org.guangsoft.pojo.Role;
     8 import org.hibernate.SessionFactory;
     9 import org.springframework.beans.factory.annotation.Autowired;
    10 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
    11 import org.springframework.stereotype.Repository;
    12 
    13 /**
    14  * 建立dao接口实现类
    15  * extends HibernateDaoSupport
    16  * 完成dao中获得session
    17  * @author guanghe
    18  *
    19  */
    20 @Repository
    21 public class RoleDaoImpl extends HibernateDaoSupport implements RoleDao
    22 {
    23     /**
    24      * 给父类注入sessionFactory通过自动装配
    25      * @param sessionFactory
    26      */
    27     @Autowired
    28     public void setSessionFactoryAutoWire(SessionFactory sessionFactory)
    29     {
    30         super.setSessionFactory(sessionFactory);
    31     }
    32     
    33     @Override
    34     public List<Role> getAllRoles()
    35     {
    36         return super.getHibernateTemplate().find("from Role");
    37     }
    38 
    39 }

    定义DeptDaoImpl

     1 package org.guangsoft.dao.impl;
     2 
     3 import java.util.List;
     4 
     5 import org.guangsoft.dao.DeptDao;
     6 import org.guangsoft.pojo.Dept;
     7 import org.hibernate.SessionFactory;
     8 import org.springframework.beans.factory.annotation.Autowired;
     9 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
    10 import org.springframework.stereotype.Repository;
    11 
    12 /**
    13  * 建立dao接口实现类
    14  * extends HibernateDaoSupport
    15  * 完成dao中获得session
    16  * @author guanghe
    17  *
    18  */
    19 @Repository
    20 public class DeptDaoImpl extends HibernateDaoSupport implements DeptDao
    21 {
    22     /**
    23      * 给父类注入sessionFactory通过自动装配
    24      * @param sessionFactory
    25      */
    26     @Autowired
    27     public void setSessionFactoryAutoWire(SessionFactory sessionFactory)
    28     {
    29         super.setSessionFactory(sessionFactory);
    30     }
    31     
    32     /**
    33      * 查询部门列表
    34      */
    35     @Override
    36     public List<Dept> getAllDepts()
    37     {
    38         return super.getHibernateTemplate().find("from Dept");
    39     }
    40 
    41 }

    1.5建立Servie接口

     1 package org.guangsoft.service;
     2 
     3 import java.util.List;
     4 
     5 import org.guangsoft.vo.UserVo;
     6 
     7 /**
     8  * 部门的业务接口
     9  * @author guanghe
    10  */
    11 public interface UserService
    12 {
    13     //封装部门集合和角色的集合
    14     public UserVo loadDeptRoleService();
    15     //添加用户信息
    16     public void saveUserService(UserVo userVo);
    17     //加载用户列表
    18     public List<UserVo> loadUserListService();
    19     //删除用户
    20     public void deleteUserService(UserVo userVo);
    21     //修改用户
    22     public void updateUserService(UserVo userVo);
    23     //根据id获得用户
    24     public UserVo getUserByIdService(UserVo userVo);
    25 }

    1.6建立service接口实现类

      1 package org.guangsoft.service.impl;
      2 
      3 import java.util.ArrayList;
      4 import java.util.List;
      5 import java.util.Set;
      6 
      7 import org.apache.commons.beanutils.BeanUtils;
      8 import org.guangsoft.dao.DeptDao;
      9 import org.guangsoft.dao.RoleDao;
     10 import org.guangsoft.dao.UserDao;
     11 import org.guangsoft.pojo.Dept;
     12 import org.guangsoft.pojo.Role;
     13 import org.guangsoft.pojo.User;
     14 import org.guangsoft.service.UserService;
     15 import org.guangsoft.vo.UserVo;
     16 import org.junit.Test;
     17 import org.springframework.beans.factory.annotation.Autowired;
     18 import org.springframework.context.ApplicationContext;
     19 import org.springframework.context.support.ClassPathXmlApplicationContext;
     20 import org.springframework.stereotype.Service;
     21 /**
     22  * 部门业务接口实现类
     23  * @author guanghe
     24  *
     25  */
     26 @Service
     27 public class UserServiceImpl implements UserService
     28 {
     29     //声明dao对象
     30     @Autowired
     31     private UserDao userDao;
     32     @Autowired
     33     private DeptDao deptDao;
     34     @Autowired
     35     private RoleDao roleDao;
     36 
     37     @Override
     38     public UserVo loadDeptRoleService()
     39     {
     40         List<Dept> deptList = deptDao.getAllDepts();
     41         List<Role> roleList = roleDao.getAllRoles();
     42         UserVo userVo = new UserVo();
     43         userVo.setDeptList(deptList);
     44         userVo.setRoleList(roleList);
     45         return userVo;
     46     }
     47 
     48     @Override
     49     public void saveUserService(UserVo userVo)
     50     {
     51         //将userVo转化为pojo对象
     52         User user = new User();
     53         try
     54         {
     55             org.springframework.beans.BeanUtils.copyProperties(userVo, user);
     56         }
     57         catch (Exception e)
     58         {
     59             e.printStackTrace();
     60         }
     61         userDao.saveUser(user);
     62         //通过user建立和部门关系
     63         Integer did = userVo.getDid();
     64         if(!"".equals(did) && did != null)
     65         {
     66             Dept dept = new Dept();
     67             dept.setDid(did);
     68             user.setDept(dept);
     69         }
     70         //通过user建立和角色的关系
     71         Integer rids[] = userVo.getRids();
     72         if(rids != null)
     73         {
     74             for(Integer rid : rids)
     75             {
     76                 Role role = new Role();
     77                 role.setRid(rid);
     78                 user.getRoles().add(role);
     79             }
     80         }
     81     }
     82 
     83     @Override
     84     public List<UserVo> loadUserListService()
     85     {
     86         List<User> userList = userDao.getAllUsers();
     87         //创建UserVoList集合
     88         List<UserVo> userVoList = new ArrayList<UserVo>();
     89         //将数据库查询到的结果封装为需要给用户显示的数据模型
     90         for(User user : userList)
     91         {
     92             //封装用户的角色集合
     93             Set<Role> roleSet = user.getRoles();
     94             StringBuffer rnameBuffer = new StringBuffer(); 
     95             for(Role role : roleSet)
     96             {
     97                 rnameBuffer.append(role.getRname());
     98                 rnameBuffer.append(',');
     99             }
    100             String rname = rnameBuffer.toString();
    101             if(!"".equals(rname))
    102             {
    103                 rname = rname.substring(0,rname.lastIndexOf(','));
    104             }
    105             UserVo userVo = new UserVo();
    106             try
    107             {
    108                 org.springframework.beans.BeanUtils.copyProperties(user, userVo);
    109             }
    110             catch (Exception e)
    111             {
    112                 e.printStackTrace();
    113             }
    114             userVo.setRname(rname);
    115             userVoList.add(userVo);
    116         }
    117         return userVoList;
    118     }
    119 
    120     @Override
    121     public void deleteUserService(UserVo userVo)
    122     {
    123         //将userVo转化为pojo对象
    124         User user = new User();
    125         try
    126         {
    127             org.springframework.beans.BeanUtils.copyProperties(userVo, user);
    128         }
    129         catch (Exception e)
    130         {
    131             e.printStackTrace();
    132         }
    133         user = userDao.getUserById(user);
    134         user.setDept(null);
    135         user.setRoles(null);
    136         userDao.deleteUser(user);
    137     }
    138 
    139     @Override
    140     public void updateUserService(UserVo userVo)
    141     {
    142         //将userVo转化为pojo对象
    143         User user = new User();
    144         try
    145         {
    146             org.springframework.beans.BeanUtils.copyProperties(userVo, user);
    147         }
    148         catch (Exception e)
    149         {
    150             e.printStackTrace();
    151         }
    152         userDao.updateUser(user);
    153         //通过user建立和部门关系
    154         Integer did = userVo.getDid();
    155         if(!"".equals(did) && did != null)
    156         {
    157             Dept dept = new Dept();
    158             dept.setDid(did);
    159             user.setDept(dept);
    160         }
    161         //通过user建立和角色的关系
    162         Integer rids[] = userVo.getRids();
    163         if(rids != null)
    164         {
    165             for(Integer rid : rids)
    166             {
    167                 Role role = new Role();
    168                 role.setRid(rid);
    169                 user.getRoles().add(role);
    170             }
    171         }
    172     }
    173 
    174     @Override
    175     public UserVo getUserByIdService(UserVo userVo)
    176     {
    177         User user = new User();
    178         user.setUid(userVo.getUid());
    179         user = userDao.getUserById(user);
    180         org.springframework.beans.BeanUtils.copyProperties(user, userVo);
    181         return userVo;
    182     }
    183 }

    1.7建立UsersAction

     1 package org.guangsoft.action;
     2 import java.util.List;
     3 
     4 import org.guangsoft.service.UserService;
     5 import org.guangsoft.vo.UserVo;
     6 import org.springframework.beans.BeanUtils;
     7 import org.springframework.beans.factory.annotation.Autowired;
     8 import org.springframework.context.annotation.Scope;
     9 import org.springframework.stereotype.Controller;
    10 
    11 import com.opensymphony.xwork2.ActionContext;
    12 import com.opensymphony.xwork2.ModelDriven;
    13 
    14 @Controller
    15 @Scope("prototype") 
    16 public class UserAction implements ModelDriven<UserVo>
    17 {
    18     //自动装配service
    19     @Autowired
    20     private UserService userService;
    21     //创建页面对象
    22     private UserVo userVo = new UserVo();
    23     
    24     @Override
    25     public UserVo getModel()
    26     {
    27         return userVo;
    28     }
    29     public UserVo getUserVo()
    30     {
    31         return userVo;
    32     }
    33     public void setUserVo(UserVo userVo)
    34     {
    35         this.userVo = userVo;
    36     }
    37     public UserService getUserService()
    38     {
    39         return userService;
    40     }
    41     public void setUserService(UserService userService)
    42     {
    43         this.userService = userService;
    44     }
    45     
    46      //加载添加用户页面
    47     public String loadSaveUi()
    48     {
    49         UserVo userVoLoad = userService.loadDeptRoleService();
    50         userVo.setDeptList(userVoLoad.getDeptList());
    51         userVo.setRoleList(userVoLoad.getRoleList());
    52         return ActionConstants.TO_SAVE_UI;
    53     }
    54     
    55     //添加用户
    56     public String addUser()
    57     {
    58         userService.saveUserService(userVo);
    59         return ActionConstants.TO_LIST_ACTION;
    60     }
    61     
    62     //加载修改用户页面
    63     public String loadUpdateUi()
    64     {
    65         userVo = userService.getUserByIdService(userVo);
    66         loadSaveUi();
    67         return ActionConstants.TO_UPDATE_UI;
    68     }
    69     
    70     //修改用户
    71     public String updateUser()
    72     {
    73         userService.updateUserService(userVo);
    74         return ActionConstants.TO_LIST_ACTION;
    75     }
    76     
    77     //加载用户列表
    78     public String loadListUi()
    79     {
    80         //获得用户集合
    81         List<UserVo> userVoList = userService.loadUserListService();
    82         ActionContext.getContext().put("userVoList", userVoList);
    83         return ActionConstants.TO_LIST_UI;
    84     }
    85     
    86     //删除用户
    87     public String deleteUser()
    88     {
    89         userService.deleteUserService(userVo);
    90         return ActionConstants.TO_LIST_ACTION;
    91     }
    92     
    93 }

    1.8配置Action

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
     3 <struts>
     4     <package name="user" namespace="/" extends="struts-default">
     5         <!-- action在spring容器中对应的id -->
     6         <action name="userAction_*" class="userAction" method="{1}">
     7             <result name="TO_SAVE_UI">/WEB-INF/jsp/saveUser.jsp</result>
     8             <result name="TO_UPDATE_UI">/WEB-INF/jsp/updateUser.jsp</result>
     9             <result name="TO_LIST_UI">/WEB-INF/jsp/userList.jsp</result>
    10             <result name="TO_LIST_ACTION" type="redirectAction">userAction_loadListUi</result>
    11         </action>
    12     </package>
    13 </struts>    

    1.9建立测试文件

    TestUserDao.java

     1 package org.guangsoft.test;
     2 
     3 import java.util.List;
     4 
     5 import org.guangsoft.dao.UserDao;
     6 import org.guangsoft.pojo.User;
     7 import org.junit.Test;
     8 import org.springframework.context.ApplicationContext;
     9 import org.springframework.context.support.ClassPathXmlApplicationContext;
    10 
    11 public class TestUserDao
    12 {
    13     @Test
    14     public void testSaveUser()
    15     {
    16         ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    17         UserDao userDao = (UserDao) ac.getBean("userDaoImpl");
    18         User user = new User();
    19         user.setUsername("testUserDao01");;
    20         userDao.saveUser(user);
    21     }
    22     
    23     @Test
    24     public void testGetAllUsers()
    25     {
    26         ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    27         UserDao userDao = (UserDao) ac.getBean("userDaoImpl");
    28         List<User> userList = userDao.getAllUsers();
    29         System.out.println(userList);
    30     }
    31     
    32     @Test
    33     public void testdeleteUser()
    34     {
    35         ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    36         UserDao userDao = (UserDao) ac.getBean("userDaoImpl");
    37         User user = new User();
    38         user.setUid(45);
    39         user = userDao.getUserById(user);
    40         userDao.deleteUser(user);
    41     }
    42     
    43     @Test 
    44     public void testUpdateUser()
    45     {
    46         ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    47         UserDao userDao = (UserDao) ac.getBean("userDaoImpl");
    48         User user = new User();
    49         user.setUid(46);
    50         user.setUsername("sfdsfsdfdsfds");
    51         user.setDept(null);
    52         userDao.updateUser(user);
    53     }
    54 }

    TestUserService.java

     1 package org.guangsoft.test;
     2 
     3 import java.util.List;
     4 
     5 import org.guangsoft.service.UserService;
     6 import org.guangsoft.vo.UserVo;
     7 import org.junit.Test;
     8 import org.springframework.context.ApplicationContext;
     9 import org.springframework.context.support.ClassPathXmlApplicationContext;
    10 
    11 public class TestUserService
    12 {
    13     @Test 
    14     public void testLoadSaveUiService()
    15     {
    16         ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    17         UserService userService = (UserService) ac.getBean("userServiceImpl");
    18         UserVo userVo = userService.loadDeptRoleService();
    19         System.out.println(userVo.getDeptList());
    20         System.out.println(userVo.getRoleList());
    21     }
    22     
    23     @Test
    24     public void testSaveUserService()
    25     {
    26         ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    27         UserService userService = (UserService) ac.getBean("userServiceImpl");
    28         UserVo userVo = new UserVo();
    29         Integer rids[] = {1,2,3};
    30         userVo.setRids(rids);
    31         userVo.setDid(1);
    32         userVo.setUsername("test02");
    33         userService.saveUserService(userVo);
    34     }
    35     
    36     @Test 
    37     public void testLoadListUiService()
    38     {
    39         ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    40         UserService userService = (UserService) ac.getBean("userServiceImpl");
    41         List<UserVo> userVoList = userService.loadUserListService();
    42         System.out.println(userVoList.get(0).getUsername());
    43     }
    44     
    45     @Test
    46     public void testDeleteUserService()
    47     {
    48         ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    49         UserService userService = (UserService) ac.getBean("userServiceImpl");
    50         UserVo userVo = new UserVo();
    51         userVo.setUid(47);
    52         userService.deleteUserService(userVo);
    53     }
    54     
    55     @Test
    56     public void testUpdateUserService()
    57     {
    58         ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    59         UserService userService = (UserService) ac.getBean("userServiceImpl");
    60         UserVo userVo = new UserVo();
    61         Integer rids[] = {1,2,3};
    62         userVo.setRids(rids);
    63         userVo.setDid(1);
    64         userVo.setUsername("test02");
    65         userVo.setUid(46);
    66         userService.updateUserService(userVo);
    67     }
    68     
    69     @Test
    70     public void testGetUserByIdService()
    71     {
    72         ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    73         UserService userService = (UserService) ac.getBean("userServiceImpl");
    74         UserVo userVo = new UserVo();
    75         userVo.setUid(49);
    76         userVo = userService.getUserByIdService(userVo);
    77         System.out.println(userVo.getUsername());
    78     }
    79 }

    1.10建立辅助文件

    UsersVo.java(封装客户端请求的数据,需要响应到客户端的数据)

     1 package org.guangsoft.vo;
     2 
     3 import java.util.Arrays;
     4 import java.util.List;
     5 
     6 import org.guangsoft.pojo.Dept;
     7 import org.guangsoft.pojo.Role;
     8 import org.guangsoft.pojo.User;
     9 
    10 /**
    11  * 定义User的vo类
    12  * 封装需要给哭护短响应的数据
    13  * 封装接受请求的数据
    14  * @author guanghe
    15  */
    16 public class UserVo extends User
    17 {
    18     //在添加用户的时候需要加载部门的集合
    19     private List<Dept> deptList;
    20     //封装角色的集合
    21     private List<Role> roleList;
    22     //获得角色的id
    23     private Integer rids[];
    24     //获得部门id
    25     private Integer did;
    26     //保存用户角色的名字,展示使用
    27     private String rname;
    28     
    29     public List<Dept> getDeptList()
    30     {
    31         return deptList;
    32     }
    33     public void setDeptList(List<Dept> deptList)
    34     {
    35         this.deptList = deptList;
    36     }
    37     public Integer[] getRids()
    38     {
    39         return rids;
    40     }
    41     public void setRids(Integer[] rids)
    42     {
    43         this.rids = rids;
    44     }
    45     public List<Role> getRoleList()
    46     {
    47         return roleList;
    48     }
    49     public void setRoleList(List<Role> roleList)
    50     {
    51         this.roleList = roleList;
    52     }
    53     public String getRname()
    54     {
    55         return rname;
    56     }
    57     public void setRname(String rname)
    58     {
    59         this.rname = rname;
    60     }
    61     public Integer getDid()
    62     {
    63         return did;
    64     }
    65     public void setDid(Integer did)
    66     {
    67         this.did = did;
    68     }
    69     
    70     
    71 }

    ActionContants(常量池,封装了跳转的常用字符串)

    1 package org.guangsoft.action;
    2 
    3 public interface ActionConstants
    4 {
    5     String TO_SAVE_UI  = "TO_SAVE_UI";
    6     String TO_UPDATE_UI  = "TO_UPDATE_UI";
    7     String TO_LIST_UI = "TO_LIST_UI";
    8     String TO_LIST_ACTION = "TO_LIST_ACTION";
    9 }

    Commons.jsp(将公共的资源文件进行统一管理) 

    1 <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/css/blue/pageCommon.css" />
    2 <script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>

    1.11建立页面

    加载saveUser.jsp,主要显示所有的部门和角色

      1 <%@ page language="java" pageEncoding="UTF-8"%>
      2 <%@ taglib uri="/struts-tags" prefix="s" %>
      3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
      4 <%
      5 String path = request.getContextPath();
      6 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
      7 %>
      8 
      9 <!DOCTYPE HTML>
     10 <html>
     11       <head>
     12         <title>添加用户</title>
     13         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     14         <base href="<%=basePath%>">
     15         <%@ include file="commons.jsp"%>
     16         <script src="js/user.js"></script>
     17     </head>
     18     <body>
     19         <div id="Title_bar">
     20             <div id="Title_bar_Head">
     21                 <div id="Title_Head"></div>
     22                 <div id="Title">
     23                     <img border="0" width="13" height="13" src="${pageContext.request.contextPath}/css/images/title_arrow.gif"/> 用户信息
     24                 </div>
     25                 <div id="Title_End"></div>
     26             </div>
     27         </div>
     28         <div id=MainArea>
     29             <s:form action="userAction_addUser.action" id="addUserForm" theme="simple" method="post">
     30                 <div class="ItemBlock_Title1">
     31                     <img border="0" width="4" height="7" src="${pageContext.request.contextPath}/css/blue/images/item_point.gif" /> 用户信息  
     32                 </div>
     33                 <div class="ItemBlockBorder">
     34                     <div class="ItemBlock">
     35                         <table cellpadding="0" cellspacing="0" class="mainForm">
     36                             <tr>
     37                                 <td width="100">所属部门</td>
     38                                 <td>
     39                                     <s:select list="deptList" listKey="did" listValue="dname" 
     40                                         name="did" cssClass="SelectStyle" />
     41                                 </td>
     42                             </tr>
     43                             <tr><td>登录名</td>
     44                                 <td>
     45                                     <s:textfield name="username" cssClass="InputStyle" />*(登录名要唯一)
     46                                 </td>
     47                             </tr>
     48                             <tr>
     49                                 <td>性别</td>
     50                                 <td>
     51                                     <s:radio list="#{'男':'男','女':'女'}" name="sex"></s:radio>
     52                                 </td>
     53                             </tr>
     54                             <tr>
     55                                 <td>联系电话</td>
     56                                 <td>
     57                                     <s:textfield name="phone" cssClass="InputStyle"/>
     58                                 </td>
     59                             </tr>
     60                             <tr>
     61                                 <td>E-mail</td>
     62                                 <td>
     63                                     <s:textfield name="email" cssClass="InputStyle"></s:textfield>
     64                                 </td>
     65                             </tr>
     66                         </table>
     67                     </div>
     68                 </div>
     69                 
     70                 <div class="ItemBlock_Title1">
     71                     <img border="0" width="4" height="7" src="${pageContext.request.contextPath}/css/blue/images/item_point.gif" /> 岗位设置 
     72                 </div>
     73                 
     74                 <!-- 表单内容显示 -->
     75                 <div class="ItemBlockBorder">
     76                     <div class="ItemBlock">
     77                         <table cellpadding="0" cellspacing="0" class="mainForm">
     78                             <tr>
     79                                 <td width="100">岗位</td>
     80                                 <td>
     81                                     <s:select list="roleList" listKey="rid" listValue="rname"
     82                                         name="rids" cssClass="SelectStyle" multiple="true" />
     83                                     按住Ctrl键可以多选或取消选择
     84                                 </td>
     85                             </tr>
     86                         </table>
     87                     </div>
     88                 </div>        
     89                 
     90                 <!-- 表单操作 -->
     91                 <div id="InputDetailBar">
     92                     <input type="image" onclick="addUser();" src="${pageContext.request.contextPath}/css/images/save.png"/>
     93                     <a href="javascript:history.go(-1);"><img src="${pageContext.request.contextPath}/css/images/goBack.png"/></a>
     94                 </div>
     95             </s:form>
     96         </div>
     97         
     98         <div class="Description">
     99             说明:<br />
    100             1,用户的登录名要唯一,在填写时要同时检测是否可用。<br />
    101             2,新建用户后,密码被初始化为"1234"。<br />
    102             3,密码在数据库中存储的是MD5摘要(不是存储明文密码)。<br />
    103             4,用户登录系统后可以使用“个人设置→修改密码”功能修改密码。<br />
    104             5,新建用户后,会自动指定默认的头像。用户可以使用“个人设置→个人信息”功能修改自已的头像<br />
    105             6,修改用户信息时,登录名不可修改。
    106         </div>
    107     </body>
    108 </html>

    加载userList.jsp

     1 <%@ page language="java" pageEncoding="UTF-8"%>
     2 <%@ taglib uri="/struts-tags" prefix="s" %>
     3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     4 <%
     5     String path = request.getContextPath();
     6     String basePath = request.getScheme() + "://"
     7         + request.getServerName() + ":" + request.getServerPort() + path + "/";
     8 %>
     9 
    10 <!DOCTYPE HTML>
    11 <html>
    12     <head>
    13         <base href="<%=basePath%>">
    14         <title>用户列表</title>
    15         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    16         <%@ include file="commons.jsp"%>
    17     </head>
    18     
    19     <body>
    20         <div id="Title_bar">
    21             <div id="Title_bar_Head">
    22                 <div id="Title_Head"></div>
    23                     <div id="Title">
    24                         <img border="0" width="13" height="13"
    25                             src="${pageContext.request.contextPath}/css/images/title_arrow.gif" /> 用户管理
    26                     </div>
    27                 <div id="Title_End"></div>
    28             </div>
    29         </div>
    30         <div id="MainArea">
    31             <table cellspacing="0" cellpadding="0" class="TableStyle">
    32                 <thead>
    33                     <tr align=center valign=middle id=TableTitle>
    34                         <td width="100">用户名</td>
    35                         <td width="100">电话</td>
    36                         <td width="100">所属部门</td>
    37                         <td>角色</td>
    38                         <td>相关操作</td>
    39                     </tr>
    40                 </thead>
    41                 <tbody id="TableData" class="dataContainer" datakey="userList">
    42                     <s:iterator value="userVoList" id="userVo">                
    43                         <tr class="TableDetail1 template">
    44                             <td><s:property value="#userVo.username" />&nbsp;</td>
    45                             <td><s:property value="#userVo.phone" />&nbsp;</td>
    46                             <td><s:property value="#userVo.dept.dname" />&nbsp;</td>
    47                             <td><s:property value="#userVo.rname" />&nbsp;</td>
    48                             <td>
    49                                 <s:a href="userAction_loadUpdateUi.action?uid=%{#userVo.uid}">修改</s:a>&nbsp;&nbsp;
    50                                 <s:a href="userAction_deleteUser.action?uid=%{#userVo.uid}" >删除</s:a>&nbsp;&nbsp;
    51                             </td>
    52                         </tr>
    53                     </s:iterator>
    54                 </tbody>
    55             </table>
    56             <div id="TableTail">
    57                 <div id="TableTail_inside">
    58                     <a href="userAction_loadSaveUi.action"><img src="${pageContext.request.contextPath}/css/images/createNew.png" /></a>
    59                 </div>
    60             </div>
    61         </div>
    62     </body>
    63 </html>
  • 相关阅读:
    86. Partition List
    328. Odd Even Linked List
    19. Remove Nth Node From End of List(移除倒数第N的结点, 快慢指针)
    24. Swap Nodes in Pairs
    2. Add Two Numbers(2个链表相加)
    92. Reverse Linked List II(链表部分反转)
    109. Convert Sorted List to Binary Search Tree
    138. Copy List with Random Pointer
    为Unity的新版ugui的Prefab生成预览图
    ArcEngine生成矩形缓冲区
  • 原文地址:https://www.cnblogs.com/guanghe/p/6139134.html
Copyright © 2011-2022 走看看