國稅協同平臺-4.用戶管理需求分析&CRUD方法
來源:程序員人生 發布時間:2016-04-14 08:54:22 閱讀次數:4153次
上次我們完成了日志模塊的配置和基礎增刪改查類,下面我們根據用戶的需求來正式開發項目的業務模塊。
下面我們主要來開發系統用戶管理的模塊
我們有用戶的功能說明書,打開功能說明書來看看這個模塊需要甚么功能:
功能說明
用戶管理:可以根據用戶名查詢系統用戶;在頁面中點擊“新增”可以添加用戶、點擊刪除可以批量刪除選中的用戶。“導出”則導出所有的用戶列表到excel文件中并彈出下載提示框給用戶下載;“導入”將需要用戶將本地的用戶列表依照1定格式將excel中的用戶導入到系統中(導入用戶的密碼默許為123456)。在用戶列表中顯示用戶名、帳號、所屬部門、性別、電子郵箱、操作;其中操作列中包括編輯、刪除兩個功能;點擊“編輯”則編輯用戶信息,刪除則刪除該用戶。
編輯用戶:編輯用戶的所屬部門(部門A/B)、用戶名、帳號、密碼、性別、角色(1般用戶、管理員)、手機號碼、電子郵箱、生日、備注。
我們的角色分配以后在進行講授,這次我們主要做user的單表增刪改查。
我們新建1個實體類user:
package cn.edu.hpu.tax.user.entity;
import java.io.Serializable;
import java.util.Date;
public class User implements Serializable{
private String id;
private String name;
private String account;
private String password;
//所屬部門
private String dept;
//頭像(相對地址)
private String headImg;
//性別
private boolean gender;
private String email;
private String mobile;
//備注
private String memo;
private Date birthday;
private String state;
//用戶狀態
public final static String USER_STATE_VALID = "1";//有效
public final static String USER_STATE_INVALID = "0";//無效
public User() {
}
public User(String id, String name, String account, String password, String dept, String headImg, boolean gendar, String email, String mobile, String memo, Date birthday, String state) {
this.id = id;
this.name = name;
this.account = account;
this.password = password;
this.dept = dept;
this.headImg = headImg;
this.gender = gendar;
this.email = email;
this.mobile = mobile;
this.memo = memo;
this.birthday = birthday;
this.state = state;
}
//get與set方法省略
}
接下來寫我們的映照文件:
接下來編寫我們的Dao層:
package cn.edu.hpu.tax.user.dao;
import cn.edu.hpu.tax.core.dao.BaseDao;
import cn.edu.hpu.tax.user.entity.User;
public interface UserDao extends BaseDao{
}
實現類:
package cn.edu.hpu.tax.user.dao.impl;
import cn.edu.hpu.tax.core.dao.impl.BaseDaoImpl;
import cn.edu.hpu.tax.user.dao.UserDao;
import cn.edu.hpu.tax.user.entity.User;
public class UserDaoImpl extends BaseDaoImplimplements UserDao{
}
接下來寫我們的Service業務層:
package cn.edu.hpu.tax.user.service;
import java.io.Serializable;
import java.util.List;
import cn.edu.hpu.tax.user.entity.User;
public interface UserService {
//新增
public void save(User user);
//更新
public void update(User user);
//根據id刪除
public void delete(Serializable id);
//根據id查找
public User findObjectById(Serializable id);
//查找列表
public ListfindObjects();
}
實現類:
package cn.edu.hpu.tax.user.service.impl;
import java.io.Serializable;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import cn.edu.hpu.tax.user.dao.UserDao;
import cn.edu.hpu.tax.user.entity.User;
import cn.edu.hpu.tax.user.service.UserService;
@Service("userService")
public class UserServiceImpl implements UserService{
@Resource
private UserDao userDao;
@Override
public void save(User user) {
userDao.save(user);
}
@Override
public void update(User user) {
userDao.update(user);
}
@Override
public void delete(Serializable id) {
userDao.delete(id);
}
@Override
public User findObjectById(Serializable id) {
return userDao.findObjectById(id);
}
@Override
public ListfindObjects() {
return userDao.findObjects();
}
}
記下來寫我們的Action層:
首先來分析,1個CRUD的Action中包括:
(1)列表頁面
(2)跳轉到新增頁面
(3)保存新增
(4)跳轉到編輯界面
(5)保存編輯
(6)刪除
(7)批量刪除
所以:
package cn.edu.hpu.tax.user.action;
import java.util.List;
import javax.annotation.Resource;
import cn.edu.hpu.tax.user.entity.User;
import cn.edu.hpu.tax.user.service.UserService;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport{
@Resource
private UserService userService;
private ListuserList;
private User user;
//列表頁面
public String listUI(){
userList=userService.findObjects();
return "listUI";
}
//跳轉到新增頁面
public String addUI(){
return "addUI";
}
//保存新增
public String add(){
if(user!=null){
userService.save(user);
}
return listUI();
}
//跳轉到編輯界面
public String editUI(){
if(user!=null && user.getId()!=null){
user=userService.findObjectById(user.getId());
}
return "editUI";
}
//保存編輯
public String edit(){
if(user!=null){
userService.update(user);
}
return listUI();
}
//刪除
public String delete(){
if(user!=null && user.getId()!=null){
userService.delete(user.getId());
}
return listUI();
}
//批量刪除
public String deleteSelected(){
return listUI();
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public ListgetUserList() {
return userList;
}
public void setUserList(ListuserList) {
this.userList = userList;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
基礎的我們都寫完了,以后需要添加新的代碼,我們暫時先寫這些。
加下來寫我們User的user-struts.xml和user-spring.xml配置文件:
先在總的spring配置文件中加:
然后編寫user-spring.xml:
接下來配置struts的配置文件user-struts.xml:
/WEB-INF/jsp/tax/user/{1}.jsp
然后將user-struts.xml加入到總配置文件中:
至此我們后臺全部工作完成。
接下來將美工給我們的前臺頁面引入(js/css/jsp/),由于我們每個jsp頁面都要使用1些相同的js和css,所以我們先把這些引入寫在1個header中,然后在每一個頁面頭部援用它,就能夠避免代碼冗余,同時使修改更容易:
heander.jsp(放在了common文件夾下):
<%@ page language="java" import="java.util.*" pageEncoding="utf⑻"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<% pageContext.setAttribute("basePath", request.getContextPath()+"/") ; %>
我們在其他所有需要引入這些配置的頁面使用靜態引入:
<%@include file="/common/header.jsp" %>
我們的用戶列表界面:
<%@ page contentType="text/html;charset=UTF⑻" language="java" %>用戶管理<%@include file="/common/header.jsp" %>
用戶名:
|
用戶名
|
帳號
|
所屬部門
|
性別
|
電子郵箱
|
操作
|
|
xxx
|
|
|
|
|
編輯 刪除
|
總共1條記錄,當前第 1 頁,共 1 頁 上1頁 下1頁 到
|
我們把項目運行以后,看1下我們這個頁面:
現在還是甚么都沒有的狀態,我們下1次完善我們的這些操作包括輸出信息。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈