Spring + Struts2 + Spring JDBC Template+ajaxanywhere+jquery实现登录,用户管理demo

要求用Spring + Struts2 + Spring JDBC Template+ajaxanywhere+jquery实现登录、部门管理(部门编号、部门名称,前端使用jquery ajax,要求增删改后列表局部刷新),实现用户管理功能(增加修改删除查询用户,用户信息包含用户名、密码、用户编号、真实姓名、所属部门、是否有效标识即可(前端使用ajaxanywhere,要求添加删除修改后列表局部刷新)

项目已经上传,点击下载所有代码

代码结构

后端代码结构jar包版本
前段代码结构

applicationContext.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:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="  
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd  
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
     http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd  
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"
    default-lazy-init="true">

    <!-- 引入jdbc配置文件 -->
    <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:db.properties</value>
            </list>
        </property>
    </bean>
    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <property name="driverClassName" value="${jdbc.driverClassName}" />
    </bean>
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource" />
    </bean>


    <bean id="userAction" class="com.dirk.action.UserAction">
        <property name="userService" ref="UserService"></property>
        <property name="departmentService" ref="departmentService"></property>
    </bean>
    <bean id="departmentAction" class = "com.dirk.action.DepartmentAction">
    <property name="departmentService" ref="departmentService"></property>
    </bean>
    <bean id="userService" class="com.dirk.service.UserServiceImpl">
        <property name="userDao" ref="userDao"></property>
    </bean>
    <bean id="departmentService" class="com.dirk.service.DepartmentServiceImpl">
        <property name="departmentDao" ref="departmentDao"></property>
    </bean>
    <bean id="userDao" class="com.dirk.dao.UserDaoImpl">
        <property name="jdbcTemplate" ref="jdbcTemplate" />
    </bean>
    <bean id="departmentDao" class="com.dirk.dao.DepartmentDaoImpl">
        <property name="jdbcTemplate" ref="jdbcTemplate" />
    </bean>
</beans>

db.properties

jdbc.username=root
jdbc.password=root
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/dirk

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">

<struts>
    <package name="mypackage" extends="struts-default" namespace="/">
        <action name="login" class="com.dirk.action.UserAction" method="login">
            <result name="success">/WEB-INF/jsp/department/userManage.jsp</result>
            <result name="error">/WEB-INF/jsp/login/login.jsp</result>
        </action>
        <action name="addUser" class="com.dirk.action.UserAction"
            method="addUser">
            <result name="success">/WEB-INF/jsp/department/userManage.jsp</result>
        </action>
        <action name="updateUser" class="com.dirk.action.UserAction"
            method="updateUser">
            <result name="success">/WEB-INF/jsp/department/userManage.jsp</result>
        </action>
        <action name="deleteUser" class="com.dirk.action.UserAction"
            method="deleteUser">
            <result name="success">/WEB-INF/jsp/department/userManage.jsp</result>
        </action>
        <action name="searchUser" class="com.dirk.action.UserAction"
            method="searchUser">
            <result name="success">/WEB-INF/jsp/department/userManage.jsp</result>
        </action>

        <action name="department" class="com.dirk.action.DepartmentAction"
            method="listDepartment">
            <result name="success">/WEB-INF/jsp/department/department.jsp</result>
        </action>
        <action name="addDepartment" class="com.dirk.action.DepartmentAction"
            method="addDepartment">
            <result name="success">/WEB-INF/jsp/department/department.jsp</result>
        </action>
        <action name="updateDepartment" class="com.dirk.action.DepartmentAction"
            method="updateDepartment">
            <result name="success">/WEB-INF/jsp/department/department.jsp</result>
        </action>
        <action name="deleteDepartment" class="com.dirk.action.DepartmentAction"
            method="deleteDepartment">
            <result name="success">/WEB-INF/jsp/department/department.jsp</result>
        </action>
    </package>
</struts>

web.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>firstDay</display-name>
    <!-- 配置首页 -->
    <welcome-file-list>
        <welcome-file>/WEB-INF/jsp/login/login.jsp</welcome-file>
    </welcome-file-list>
    <!-- 配置过滤器 -->
    <filter>
        <filter-name>Spring character encoding filter</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>
    </filter>
    <filter-mapping>
        <filter-name>Spring character encoding filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter>
        <filter-name>AjaxAnywhere</filter-name>
        <filter-class>org.ajaxanywhere.AAFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>AjaxAnywhere</filter-name>
        <url-pattern>*</url-pattern>
    </filter-mapping>
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <!-- 配置映射 -->
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>

    <!-- spring的监听器配置开始 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <!-- spring的监听器配置结束 -->
</web-app>

login.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>login page</title>
</head>
<body>
    <form name="loginform" action="login.action" method="post">
        用户:<input type="text" name="user.userName" /> 密码:<input
            type="password" name="user.password" /> <input type="submit"
            value="登录" /><br>
    </form>
    ${message}
</body>
</html>

UserAction.java

package com.dirk.action;

import java.util.List;

import com.dirk.entity.Department;
import com.dirk.entity.User;
import com.dirk.service.DepartmentService;
import com.dirk.service.UserService;
import com.opensymphony.xwork2.Action;

@SuppressWarnings("serial")
public class UserAction extends BaseAction {

    private UserService userService;
    private DepartmentService departmentService;

    private User user;
    private String message;
    private List<User> queryList;
    private List<Department> departments;

    public String login() {
        System.out.println(user);
        User user1 = userService.findUserByName(user);
        if (null == user1) {
            setMessage("用户名不存在!");
            return Action.ERROR;
        }
        if (!user.getPassword().equals(user1.getPassword())) {
            setMessage("密码错误!");
            return Action.ERROR;
        } else {
            setQueryList(userService.findAll());
            setDepartments(departmentService.findAll());
            return Action.SUCCESS;
        }
    }

    public String addUser() {
        userService.addUser(user);
        setQueryList(userService.findAll());
        setDepartments(departmentService.findAll());
        return Action.SUCCESS;
    }

    public String updateUser() {
        userService.update(user);
        setQueryList(userService.findAll());
        setDepartments(departmentService.findAll());
        return Action.SUCCESS;
    }

    public String deleteUser() {
        userService.delete(user);
        setQueryList(userService.findAll());
        setDepartments(departmentService.findAll());
        return Action.SUCCESS;
    }

    public String searchUser() {
        String userName = getRequest().getParameter("userName");
        String department = getRequest().getParameter("department");
        boolean sign = Boolean.parseBoolean(getRequest().getParameter("sign"));
        if ("".equals(userName) && "".equals(department)) {
            if (sign) {
                setQueryList(userService.findAll());
            } else {
                setQueryList(userService.getAll());
            }
        } else {
            setQueryList(userService.findByConstraint(userName, department, sign));
        }
        setDepartments(departmentService.findAll());
        return Action.SUCCESS;
    }

    public UserService getUserService() {
        return userService;
    }

    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    public DepartmentService getDepartmentService() {
        return departmentService;
    }

    public void setDepartmentService(DepartmentService departmentService) {
        this.departmentService = departmentService;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public List<User> getQueryList() {
        return queryList;
    }

    public void setQueryList(List<User> queryList) {
        this.queryList = queryList;
    }

    public List<Department> getDepartments() {
        return departments;
    }

    public void setDepartments(List<Department> departments) {
        this.departments = departments;
    }

}

UserDaoImpl.java

package com.dirk.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import com.dirk.entity.User;

public class UserDaoImpl implements UserDao {

    private JdbcTemplate jdbcTemplate;

    @SuppressWarnings("unchecked")
    @Override
    public User findUserByName(User user) {
        String selectSql = "select * from user where username= ?";
        List<User> users = jdbcTemplate.query(selectSql, new Object[] { user.getUserName() }, new UserRowMap());
        return null != users && users.size() != 0 ? users.get(0) : null;
    }

    @SuppressWarnings("unchecked")
    @Override
    public User findById(int id) {
        String selectSql = "select * from user where id= ?";
        List<User> users = jdbcTemplate.query(selectSql, new Object[] { id }, new UserRowMap());
        return null != users && users.size() != 0 ? users.get(0) : null;
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<User> findAll() {
        String selectSql = "select * from user where sign = true";
        List<User> users = jdbcTemplate.query(selectSql, new UserRowMap());
        return users;
    }

    @Override
    public void addUser(User user) {
        String insertSql = "insert into user (`id`,`username`, `password`, `realName`, `department`, `sign`)"
                + "values (?,?,?,?,?,true)";
        jdbcTemplate.update(insertSql, new Object[] { user.getId(), user.getUserName(), user.getPassword(),
                user.getRealName(), user.getDepartment() });
    }

    @Override
    public void update(User user) {
        String updateSql = "update user set `id`=?, `username`=?, `password`=?, `realName`=?, `department`=?, `sign`=true WHERE (`id`=?)";
        jdbcTemplate.update(updateSql, new Object[] { user.getId(), user.getUserName(), user.getPassword(),
                user.getRealName(), user.getDepartment(), user.getId() });
    }

    @Override
    public void delete(User user) {
        String updateSql = "update user set `id`=?, `username`=?, `password`=?, `realName`=?, `department`=?, `sign`=false WHERE (`id`=?)";
        jdbcTemplate.update(updateSql, new Object[] { user.getId(), user.getUserName(), user.getPassword(),
                user.getRealName(), user.getDepartment(), user.getId() });
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<User> findByConstraint(String userName, String department, boolean sign) {
        if ("".equals(userName)) {
            userName = null;
        }
        if ("".equals(department)) {
            department = null;
        }
        String selectSql = "select * from user where username = ifnull(?,username) and department = ifnull(?,department) and sign = ?";
        List<User> users = jdbcTemplate.query(selectSql, new Object[] { userName, department, sign }, new UserRowMap());
        return users;
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<User> getAll() {
        String selectSql = "select * from user where sign = false";
        List<User> users = jdbcTemplate.query(selectSql, new UserRowMap());
        return users;
    }

    @SuppressWarnings("rawtypes")
    class UserRowMap implements RowMapper {
        @Override
        public User mapRow(ResultSet rs, int index) throws SQLException {
            User user = new User();
            user.setId(rs.getInt("id"));
            user.setUserName(rs.getString("userName"));
            user.setPassword(rs.getString("password"));
            user.setRealName(rs.getString("realName"));
            user.setDepartment(rs.getString("department"));
            user.setSign(rs.getBoolean("sign"));
            return user;
        }
    }

    public JdbcTemplate getJdbcTemplate() {
        return jdbcTemplate;
    }

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }
}

User.java

package com.dirk.entity;

import java.io.Serializable;

@SuppressWarnings("serial")
public class User implements Serializable{
    private int id;
    private String userName;
    private String password;
    private String realName;
    private String department;
    private boolean sign;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }

    public String getRealName() {
        return realName;
    }
    public void setRealName(String realName) {
        this.realName = realName;
    }
    public String getDepartment() {
        return department;
    }
    public void setDepartment(String department) {
        this.department = department;
    }
    public boolean isSign() {
        return sign;
    }
    public void setSign(boolean sign) {
        this.sign = sign;
    }
    @Override  
    public String toString() {
        return "User [id=" + id + ", userName=" + userName + ", password=" + password + ", realName=" + realName + ", department=" + department + ", sign=" + sign + "]";  
    }  
}

UserServiceImpl.java

package com.dirk.service;

import java.util.List;

import com.dirk.dao.UserDao;
import com.dirk.entity.User;

public class UserServiceImpl implements UserService {

    private UserDao userDao;

    @Override
    public User findUserByName(User user) {
        return userDao.findUserByName(user);
    }

    @Override
    public List<User> findAll() {
        return userDao.findAll();
    }

    @Override
    public void addUser(User user) {
        int id = user.getId();
        User user1 = userDao.findById(id);
        if (user1 == null) {
            userDao.addUser(user);
        }
    }

    @Override
    public void update(User user) {
        userDao.update(user);
    }

    @Override
    public void delete(User user) {
        userDao.delete(user);
    }

    @Override
    public List<User> findByConstraint(String userName, String department, boolean sign) {
        return userDao.findByConstraint(userName, department, sign);
    }

    @Override
    public List<User> getAll() {
        return userDao.getAll();
    }

    public UserDao getUserDao() {
        return userDao;
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

}

BaseAction.java

package com.dirk.action;

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

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class BaseAction  extends ActionSupport{

    public HttpServletRequest getRequest() {
        return ServletActionContext.getRequest();
    }

    public HttpServletResponse getResponse() {
        return ServletActionContext.getResponse();
    }

    public ServletContext getContext() {
        return ServletActionContext.getServletContext();
    }

    public HttpSession getSession() {
        return getRequest().getSession();
    }

}

DepartmentAction.java

package com.dirk.action;

import java.util.List;

import com.dirk.entity.Department;
import com.dirk.service.DepartmentService;
import com.opensymphony.xwork2.Action;

@SuppressWarnings("serial")
public class DepartmentAction extends BaseAction {

    private DepartmentService departmentService;

    private Department department;
    private List<Department> departments;

    public String listDepartment() {
        setDepartments(departmentService.findAll());
        return Action.SUCCESS;
    }

    public String addDepartment() {
        System.out.println(department);
        departmentService.add(department);
        setDepartments(departmentService.findAll());
        return Action.SUCCESS;
    }

    public String updateDepartment() {
        System.out.println(department);
        departmentService.update(department);
        setDepartments(departmentService.findAll());
        return Action.SUCCESS;
    }

    public String deleteDepartment() {
        departmentService.delete(department);
        setDepartments(departmentService.findAll());
        return Action.SUCCESS;
    }

    public DepartmentService getDepartmentService() {
        return departmentService;
    }

    public void setDepartmentService(DepartmentService departmentService) {
        this.departmentService = departmentService;
    }

    public Department getDepartment() {
        return department;
    }

    public void setDepartment(Department department) {
        this.department = department;
    }

    public List<Department> getDepartments() {
        return departments;
    }

    public void setDepartments(List<Department> departments) {
        this.departments = departments;
    }

}

DepartmentDaoImpl.java

package com.dirk.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import com.dirk.entity.Department;

public class DepartmentDaoImpl implements DepartmentDao {

    private JdbcTemplate jdbcTemplate;

    @SuppressWarnings("unchecked")
    @Override
    public List<Department> findAll() {
        String selectSql = "select * from department ";
        List<Department> list = jdbcTemplate.query(selectSql, new DepartmentRowMap());
        return list;
    }

    @Override
    public void add(Department department) {
        String insertSql = "insert into department (`id`, `departmentName`) values (?, ?)";
        jdbcTemplate.update(insertSql, new Object[] { department.getId(), department.getDepartmentName() });
    }

    @Override
    public void update(Department department) {
        System.out.println("---"+ department);
        String updateSql = "update department set `id`=?, `departmentName`=? WHERE (`id`=?)";
        jdbcTemplate.update(updateSql,
                new Object[] { department.getId(), department.getDepartmentName(), department.getId() });

    }

    @Override
    public void delete(Department department) {
        String deleteSql = "delete from department where id = ?";
        jdbcTemplate.update(deleteSql, new Object[] { department.getId() });
    }

    @SuppressWarnings("rawtypes")
    class DepartmentRowMap implements RowMapper {

        @Override
        public Department mapRow(ResultSet rs, int index) throws SQLException {
            Department department = new Department();

            department.setId(rs.getInt("id"));
            department.setDepartmentName(rs.getString("departmentName"));

            return department;
        }

    }

    public JdbcTemplate getJdbcTemplate() {
        return jdbcTemplate;
    }

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

}

DepartmentServiceImpl.java

package com.dirk.service;

import java.util.List;

import com.dirk.dao.DepartmentDao;
import com.dirk.entity.Department;

public class DepartmentServiceImpl implements DepartmentService {

    private DepartmentDao departmentDao;

    @Override
    public List<Department> findAll() {
        return departmentDao.findAll();
    }

    @Override
    public void add(Department department) {
        departmentDao.add(department);
    }


    @Override
    public void delete(Department department) {
        departmentDao.delete(department);
    }

    @Override
    public void update(Department department) {
        departmentDao.update(department);
    }

    public DepartmentDao getDepartmentDao() {
        return departmentDao;
    }

    public void setDepartmentDao(DepartmentDao departmentDao) {
        this.departmentDao = departmentDao;
    }

}

点击下载全部代码

猜你喜欢

转载自blog.csdn.net/shepherd_dirk/article/details/80354682
今日推荐