bean层
bean层实现序列化。当时在写MyBatis缓存时就会出现异常。其他POJO略。
package com.wf.ssm.beans;
import java.io.Serializable;
public class Admin implements Serializable{
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private String password;
private Integer grade;
public Admin() {}
public Admin(Integer id, String name, String password, Integer grade) {
super();
this.id = id;
this.name = name;
this.password = password;
this.grade = grade;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getGrade() {
return grade;
}
public void setGrade(Integer grade) {
this.grade = grade;
}
@Override
public String toString() {
return "Admin [id=" + id + ", name=" + name + ", password=" + password
+ ", grade=" + grade + "]";
}
}
DAO层
编写接口类,定义操作数据库的方法。
package com.wf.ssm.dao;
import java.util.List;
import com.wf.ssm.beans.Admin;
public interface AdminMapper {
//查所有的管理员
public List<Admin> selectAdmin();
//添加管理员
public boolean insertAdmin(Admin admin);
//根据主键删除管理员
public boolean deleteById(Integer id);
//更新管理员
public boolean updateAdmin(Admin admin);
//通过ID 查询管理员
public Admin selectById(Integer id);
//通过name 查询管理员
public List<Admin> selectByName(String name);
//通过grade 查询管理员
public List<Admin> selectByGrade(Integer grade);
}
struts2的ACTION层,即控制层。
package com.wf.ssm.action;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.wf.ssm.beans.Admin;
import com.wf.ssm.dao.AdminMapper;
@Controller
@Scope("prototype")
public class AdminAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private String password;
private Integer grade;
private Admin admin=new Admin();
@Autowired
private AdminMapper adminDao;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getGrade() {
return grade;
}
public void setGrade(Integer grade) {
this.grade = grade;
}
public AdminMapper getAdminDao() {
return adminDao;
}
public void setAdminDao(AdminMapper adminDao) {
this.adminDao = adminDao;
}
public Admin getAdmin() {
return admin;
}
public void setAdmin(Admin admin) {
this.admin = admin;
}
/**
* 进入管理员登记页面
*
* @return
*/
public String adminLogin() {
String result ="";
try {
String password = getPassword();
Admin admin = adminDao.selectById(id);
if(admin!=null){
String pass = admin.getPassword();
if(password.equals(pass) && password!=""){
//将用户id保存在session中
ActionContext.getContext().getSession().put("id", id);
result = "success";
}else{
result = "error";
}
}else{
return ERROR;
}
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
return result;
}
//添加员工
public String insertAdmin() throws Exception{
String result ="";
boolean b=adminDao.insertAdmin(admin);
if(b==true){
result="success";
}else {
result="error";
}
return result;
}
//删除管理员
public String deleteAdmin() throws Exception{
String result="";
if(admin.getId() != null){
boolean b = adminDao.deleteById(admin.getId());
if(b == true){
result="success";
}else {
result="error";
}
}else {
result="error";
}
return result;
}
//更新管理员
public String updateAdmin(){
String result ="";
boolean b=adminDao.updateAdmin(admin);
if(b==true){
result="success";
}else {
result="error";
}
return result;
}
//查询管理员
public String selectAdmin() throws Exception{
String result ="";
List<Admin> lists=adminDao.selectAdmin();
if(lists != null){
ActionContext.getContext().put("lists", lists);
result="success";
}else {
result="error";
}
return result;
}
//查询管理员
/* public String selectAdmin() throws Exception{
String result ="";
//当前页
Integer pageNo=1;
if(page!=null){
pageNo=page.getPageno();
}
//页面大小
Integer pageSize=5;
Integer totalCount=adminDao.selectAllAdmin();
page=new Page(pageNo, pageSize, totalCount);
List<Admin> lists=adminDao.findPage(page);
if(lists != null){
ActionContext.getContext().put("lists", lists);
ActionContext.getContext().put("page", page);
System.out.println(toString());
result="success";
}else {
result="error";
}
return result;
}
*/
//按name查询用户
public String name() throws Exception{
String result ="";
List<Admin> lists=adminDao.selectByName(name);
ActionContext.getContext().put("lists", lists);
if(lists != null){
result="name";
}else {
result="error";
}
return result;
}
//按grade查询用户
public String grade() throws Exception{
String result ="";
List<Admin> lists=adminDao.selectByGrade(grade);
ActionContext.getContext().put("lists", lists);
if(lists != null){
result="grade";
}else {
result="error";
}
return result;
}
@Override
public String toString() {
return "AdminAction [id=" + id + ", name=" + name + ", password="
+ password + ", grade=" + grade + "]";
}
}
@Scope(“prototype”):指定该控制器范围为原型,表示每次请求都会返回不同的对象。
分页
//查询班级
public String selectClass() throws Exception{
String result ="";
//当前页
Integer pageNo=1;
if(page!=null){
pageNo=page.getPageno();
}
//页面大小
Integer pageSize=5;
Integer totalCount=classBeanDao.selectAll();
page=new Page(pageNo, pageSize, totalCount);
List<ClassBean> lists=classBeanDao.findPage(page);
if(lists != null){
ActionContext.getContext().put("lists", lists);
ActionContext.getContext().put("page", page);
result="success";
}else {
result="error";
}
return result;
}
定义分页对象。
package com.wf.ssm.beans;
public class Page {
private Integer pageno;
private Integer pagesize;
private Integer totalcount;
private Integer totalpage;
private Integer startrow;
private Integer endrow;
public Page() {
}
public Page(Integer pageno, Integer pagesize, Integer totalcount) {
this.pageno = pageno;
this.pagesize = pagesize;
this.startrow=pageno*pagesize;
this.endrow=(pageno-1)*pagesize;
this.totalcount = totalcount;
this.setTotalpage(totalcount);
}
public Integer getPageno() {
return pageno;
}
public void setPageno(Integer pageno) {
this.pageno = pageno;
}
public Integer getPagesize() {
return pagesize;
}
public void setPagesize(Integer pagesize) {
this.pagesize = pagesize;
}
public Integer getTotalcount() {
return totalcount;
}
public void setTotalcount(Integer totalcount) {
this.totalcount = totalcount;
}
public Integer getTotalpage() {
return totalpage;
}
/**
* 总条数
* @param totalcount
*/
public void setTotalpage(Integer totalcount) {
this.totalpage = totalcount%pagesize==0? totalcount/pagesize:totalcount/pagesize+1;
}
public Integer getStartrow() {
return startrow;
}
public void setStartrow(Integer startrow) {
this.startrow = startrow;
}
public Integer getEndrow() {
return endrow;
}
public void setEndrow(Integer endrow) {
this.endrow = endrow;
}
}
定义mapper.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wf.ssm.dao.AdminMapper">
<resultMap id="BaseResultMap" type="admin">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="password" jdbcType="VARCHAR" property="password" />
<result column="grade" jdbcType="INTEGER" property="grade" />
</resultMap>
<sql id="Base_Column_List">
id, name, password, grade
</sql>
<!-- public boolean insertAdmin(Admin admin); -->
<insert id="insertAdmin" parameterType="admin">
insert into admin (id, name, password, grade)
values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
#{grade,jdbcType=INTEGER}
)
</insert>
<!-- public boolean deleteById(Integer id); -->
<delete id="deleteById" parameterType="java.lang.Integer">
delete from admin
where id = #{id,jdbcType=INTEGER}
</delete>
<!-- public boolean updateAdmin(Admin admin); -->
<update id="updateAdmin" parameterType="admin">
update admin
set
name = #{name,jdbcType=VARCHAR},
password = #{password,jdbcType=VARCHAR},
grade = #{grade,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}
</update>
<!-- public List<Admin> selectAdmin(); -->
<select id="selectAdmin"
resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from admin
</select>
<!-- public Admin selectById(Integer id); -->
<select id="selectById" parameterType="java.lang.Integer"
resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from admin
where id = #{id,jdbcType=INTEGER}
</select>
<!-- public List<Admin> selectByName(String name); -->
<select id="selectByName" parameterType="java.lang.String"
resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from admin
where name = #{name,jdbcType=VARCHAR}
</select>
<!-- public List<Admin> selectByGrade(Integer id); -->
<select id="selectByGrade" parameterType="java.lang.Integer"
resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from admin
where grade = #{grade,jdbcType=INTEGER}
</select>
</mapper>
spring配置文件 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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- 配置DataSource数据源 -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<!-- 导入属性配置文件 -->
<value>
classpath:jdbc.properties
</value>
</property>
</bean>
<!--配置数据连接-->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!-- 指定连接数据库的JDBC驱动 -->
<property name="driverClassName" value="${jdbc.driver}" />
<!-- 连接数据库所用的URL -->
<property name="url" value="${jdbc.url}" />
<!-- 连接数据库的用户名 -->
<property name="username" value="${jdbc.username}" />
<!-- 连接数据库的密码 -->
<property name="password" value="${jdbc.password}" />
</bean>
<!-- 配置事务管理器,注意这里的dataSource和SqlSessionFactoryBean的dataSource要一致,不然事务就没有作用了 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 创建SqlSessionFactory,同时指定数据源 Mybatis 的 SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 创建SqlSessionFactory,同时指定数据源 -->
<!-- 集成myBaits框架,配置sqlSessionFatory -->
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<!--把xml文件注入到mapperInterface-->
<bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.wf.ssm.dao.UserMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="adminDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.wf.ssm.dao.AdminMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="classBeanDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.wf.ssm.dao.ClassBeanMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="zhuanYeDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.wf.ssm.dao.ZhuanYeMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="xueYuanDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.wf.ssm.dao.XueYuanMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="suSheDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.wf.ssm.dao.SuSheMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="liuYanDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.wf.ssm.dao.LiuYanMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="shuiDianDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.wf.ssm.dao.ShuiDianMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="suSheBaoXiuDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.wf.ssm.dao.SuSheBaoXiuMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="suSheWeiGuiDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.wf.ssm.dao.SuSheWeiGuiMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="wanGuiDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.wf.ssm.dao.WanGuiMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="pingFenDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.wf.ssm.dao.PingFenMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="newsDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.wf.ssm.dao.NewsMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="liuXiaoDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.wf.ssm.dao.LiuXiaoMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
</beans>
db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring_struts2_mybatis?characterEncoding=utf8&allowMultiQueries=true
jdbc.username=root
jdbc.password="你数据库登录密码"
这里的?characterEncoding=utf8&allowMultiQueries=true解决中文乱码。
MyBatis配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias type="com.wf.ssm.beans.User" alias="user"/>
<typeAlias type="com.wf.ssm.beans.Admin" alias="admin"/>
<typeAlias type="com.wf.ssm.beans.ClassBean" alias="classBean"/>
<typeAlias type="com.wf.ssm.beans.ZhuanYe" alias="zhuanYe"/>
<typeAlias type="com.wf.ssm.beans.XueYuan" alias="xueYuan"/>
<typeAlias type="com.wf.ssm.beans.SuShe" alias="suShe"/>
<typeAlias type="com.wf.ssm.beans.LiuYan" alias="liuYan"/>
<typeAlias type="com.wf.ssm.beans.ShuiDian" alias="shuiDian"/>
<typeAlias type="com.wf.ssm.beans.SuSheBaoXiu" alias="suSheBaoXiu"/>
<typeAlias type="com.wf.ssm.beans.SuSheWeiGui" alias="suSheWeiGui"/>
<typeAlias type="com.wf.ssm.beans.WanGui" alias="wanGui"/>
<typeAlias type="com.wf.ssm.beans.PingFen" alias="pingFen"/>
<typeAlias type="com.wf.ssm.beans.News" alias="news"/>
<typeAlias type="com.wf.ssm.beans.LiuXiao" alias="liuXiao"/>
</typeAliases>
<!-- myBatis 测试
<environments default="dev_mysql">
<environment id="dev_mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/spring_struts2_mybatis" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
-->
<mappers>
<mapper resource="sqlmapper/UserMapper.xml"/>
<mapper resource="sqlmapper/AdminMapper.xml"/>
<mapper resource="sqlmapper/ClassBeanMapper.xml"/>
<mapper resource="sqlmapper/ZhuanYeMapper.xml"/>
<mapper resource="sqlmapper/XueYuanMapper.xml"/>
<mapper resource="sqlmapper/SuSheMapper.xml"/>
<mapper resource="sqlmapper/LiuYanMapper.xml"/>
<mapper resource="sqlmapper/ShuiDianMapper.xml"/>
<mapper resource="sqlmapper/SuSheBaoXiuMapper.xml"/>
<mapper resource="sqlmapper/SuSheWeiGuiMapper.xml"/>
<mapper resource="sqlmapper/WanGuiMapper.xml"/>
<mapper resource="sqlmapper/PingFenMapper.xml"/>
<mapper resource="sqlmapper/NewsMapper.xml"/>
<mapper resource="sqlmapper/LiuXiaoMapper.xml"/>
</mappers>
</configuration>
Struts2的配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 指定默认编码集 ,作用于HttpServletRequest的setCharacterEncoding()
和freemarker,vilocity的输出 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 当struts配置文件修改时是否自动加载 -->
<constant name="struts.configuration.xmlreload" value="true"/>
<!-- 开发模式下打印详细的错误信息,默认为false -->
<constant name="struts.devMode" value="false"/>
<!-- 标准的UI主题,默认的UI主题为xhtml,可以为simple,xhtml或ajax -->
<constant name="struts.ui.theme" value="xhtml"/>
<!-- 配置上传文件的最大容量,struts2默认为2M。单位是1B, 1KB=1024B,1M=1024KB,1M=1024*1024B-->
<constant name="struts.multipart.maxSize" value="1048576" />
<constant name="struts.multipart.saveDir" value="/upload"></constant>
<package name="default" namespace="/" extends="struts-default">
<action name="upload" class="com.wf.ssm.action.Upload">
<result>upload_success.jsp</result>
</action>
<action name="download" class="com.wf.ssm.action.DownloadAction">
<!-- 设置文件路径的参数,传到action类文件中去 -->
<!-- <param name="path">\download\a.jpg</param> -->
<!-- 下载文件类型定义,即定义为“stream” -->
<result name="success" type="stream">
<!-- image/jpeg代表JPG图片 -->
<param name="contentType">image/jpeg</param>
<!-- 下载文件处理方法 -->
<param name="contentDisposition">
<!-- attachment表示附件方式,即下载时打开保存对话窗,filename表示下载时显示的保存时的文件名 -->
<!-- 如果不写attachment;或者是写的是inline; 则表示内联,即会在浏览器中尝试打开下载的文件,而不是下载-->
attachment;filename="a.doc"
</param>
<!-- 下载文件输出流定义 -->
<!-- 这里的inputName元素所对应的value值downloadFile,在action中一定要有对应的getDownloadFile()方法 -->
<param name="inputName">downloadFile</param>
<!-- 下载缓冲区的大小 -->
<param name="bufferSize">1024</param>
</result>
</action>
<!-- 学生登录请求的 action -->
<action name="login" method="login"
class="com.wf.ssm.action.UserAction">
<result name="success">/user_pages/zhuCeSuccess.jsp</result>
<result name="error">/user_pages/user_error.jsp</result>
</action>
<!-- 管理员登录请求的 action -->
<action name="adminLogin" method="adminLogin"
class="com.wf.ssm.action.AdminAction">
<result name="success">/admin_pages/index.jsp</result>
<!-- 当页面表单填写不合法时,这里一定要加上下面这句 例如页面上input输入框有name=“id”的那种-->
<!-- <result name="input">error.jsp</result> -->
<result name="error">/admin_pages/admin_error.jsp</result>
</action>
<!-- 添加学生 -->
<action name="insertUser"
class="com.wf.ssm.action.UserAction" method="insertUser">
<result name="success">/admin_pages/main.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 学生注册 -->
<action name="insertUser2"
class="com.wf.ssm.action.UserAction" method="insertUser">
<result name="success">/user_pages/zhuCeSuccess.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 删除学生 -->
<action name="deleteUser"
class="com.wf.ssm.action.UserAction" method="deleteUser">
<result name="input">/admin_pages/main.jsp</result>
<result name="success">/admin_pages/success.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 更新学生 -->
<action name="updateUser"
class="com.wf.ssm.action.UserAction" method="updateUser">
<result name="success">/admin_pages/main.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 查询学生 -->
<action name="selectUsers"
class="com.wf.ssm.action.UserAction" method="selectUsers">
<result name="success">/admin_pages/main.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 条件查询用户 -->
<action name="condition_*"
class="com.wf.ssm.action.UserAction" method="{1}">
<result name="{1}">/admin_pages/condition_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 添加管理员 -->
<action name="insertAdmin"
class="com.wf.ssm.action.AdminAction" method="insertAdmin">
<result name="success">/admin_pages/admin_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 删除管理员 -->
<action name="deleteAdmin"
class="com.wf.ssm.action.AdminAction" method="deleteAdmin">
<result name="input">/admin_pages/admin_index.jsp</result>
<result name="success">/admin_pages/admin_success.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 更新管理员 -->
<action name="updateAdmin"
class="com.wf.ssm.action.AdminAction" method="updateAdmin">
<result name="success">/admin_pages/admin_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 查询管理员 -->
<action name="selectAdmin"
class="com.wf.ssm.action.AdminAction" method="selectAdmin">
<result name="success">/admin_pages/admin_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 条件查询管理员 -->
<action name="admin_*"
class="com.wf.ssm.action.AdminAction" method="{1}">
<result name="{1}">/admin_pages/condition_admin_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 添加班级 -->
<action name="insertClass"
class="com.wf.ssm.action.ClassBeanAction" method="insertClass">
<result name="success">/admin_pages/class_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 删除班级 -->
<action name="deleteClass"
class="com.wf.ssm.action.ClassBeanAction" method="deleteClass">
<result name="input">/admin_pages/class_index.jsp</result>
<result name="success">/admin_pages/delete_class_success.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 更新班级 -->
<action name="updateClass"
class="com.wf.ssm.action.ClassBeanAction" method="updateClass">
<result name="success">/admin_pages/class_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 查询班级 -->
<action name="selectClass"
class="com.wf.ssm.action.ClassBeanAction" method="selectClass">
<result name="success">/admin_pages/class_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 条件查询班级 -->
<action name="class_*"
class="com.wf.ssm.action.ClassBeanAction" method="{1}">
<result name="{1}">/admin_pages/condition_class_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 添加专业 -->
<action name="insertZhuanYe"
class="com.wf.ssm.action.ZhuanYeAction" method="insertZhuanYe">
<result name="success">/admin_pages/zhuanYe_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 删除专业-->
<action name="deleteZhuanYe"
class="com.wf.ssm.action.ZhuanYeAction" method="deleteZhuanYe">
<result name="input">/admin_pages/zhuanYe_index.jsp</result>
<result name="success">/admin_pages/delete_zhuanYe_success.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 更新专业 -->
<action name="updateZhuanYe"
class="com.wf.ssm.action.ZhuanYeAction" method="updateZhuanYe">
<result name="success">/admin_pages/zhuanYe_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 查询专业 -->
<action name="selectZhuanYe"
class="com.wf.ssm.action.ZhuanYeAction" method="selectZhuanYe">
<result name="success">/admin_pages/zhuanYe_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 条件查询专业-->
<action name="zhuanYe_*"
class="com.wf.ssm.action.ZhuanYeAction" method="{1}">
<result name="{1}">/admin_pages/condition_zhuanYe_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 添加学院 -->
<action name="insertXueYuan"
class="com.wf.ssm.action.XueYuanAction" method="insertXueYuan">
<result name="success">/admin_pages/xueYuan_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 删除学院-->
<action name="deleteXueYuan"
class="com.wf.ssm.action.XueYuanAction" method="deleteXueYuan">
<result name="input">/admin_pages/xueYuan_index.jsp</result>
<result name="success">/admin_pages/delete_xueYuan_success.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 更新学院 -->
<action name="updateXueYuan"
class="com.wf.ssm.action.XueYuanAction" method="updateXueYuan">
<result name="success">/admin_pages/xueYuan_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 查询学院 -->
<action name="selectXueYuan"
class="com.wf.ssm.action.XueYuanAction" method="selectXueYuan">
<result name="success">/admin_pages/xueYuan_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 条件查询学院-->
<action name="xueYuan_*"
class="com.wf.ssm.action.XueYuanAction" method="{1}">
<result name="{1}">/admin_pages/condition_xueYuan_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 添加宿舍-->
<action name="insertSuShe"
class="com.wf.ssm.action.SuSheAction" method="insertSuShe">
<result name="success">/admin_pages/suShe_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 删除宿舍-->
<action name="deleteSuShe"
class="com.wf.ssm.action.SuSheAction" method="deleteSuShe">
<result name="input">/admin_pages/suShe_index.jsp</result>
<result name="success">/admin_pages/delete_suShe_success.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 更新宿舍 -->
<action name="updateSuShe"
class="com.wf.ssm.action.SuSheAction" method="updateSuShe">
<result name="success">/admin_pages/suShe_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 查询宿舍 -->
<action name="selectSuShe"
class="com.wf.ssm.action.SuSheAction" method="selectSuShe">
<result name="success">/admin_pages/suShe_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 条件查询宿舍-->
<action name="suShe_*"
class="com.wf.ssm.action.SuSheAction" method="{1}">
<result name="{1}">/admin_pages/condition_suShe_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 添加留言-->
<action name="insertLiuYan"
class="com.wf.ssm.action.LiuYanAction" method="insertLiuYan">
<result name="success">/admin_pages/liuYan_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 学生添加留言 -->
<action name="insertLiuYan2"
class="com.wf.ssm.action.LiuYanAction" method="insertLiuYan">
<result name="success">/user_pages/condition_liuYan_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 删除留言-->
<action name="deleteLiuYan"
class="com.wf.ssm.action.LiuYanAction" method="deleteLiuYan">
<result name="input">/admin_pages/liuYan_index.jsp</result>
<result name="success">/admin_pages/delete_liuYan_success.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 更新留言 -->
<action name="updateLiuYan"
class="com.wf.ssm.action.LiuYanAction" method="updateLiuYan">
<result name="success">/admin_pages/liuYan_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 查询留言 -->
<action name="selectLiuYan"
class="com.wf.ssm.action.LiuYanAction" method="selectLiuYan">
<result name="success">/admin_pages/liuYan_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 用户查看留言 -->
<action name="selectLiuYan2"
class="com.wf.ssm.action.LiuYanAction" method="selectLiuYan">
<result name="success">/user_pages/condition_liuYan_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 条件查询留言-->
<action name="liuYan_*"
class="com.wf.ssm.action.LiuYanAction" method="{1}">
<result name="{1}">/admin_pages/condition_liuYan_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 添加水电-->
<action name="insertShuiDian"
class="com.wf.ssm.action.ShuiDianAction" method="insertShuiDian">
<result name="success">/admin_pages/shuiDian_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 删除水电-->
<action name="deleteShuiDian"
class="com.wf.ssm.action.ShuiDianAction" method="deleteShuiDian">
<result name="input">/admin_pages/shuiDian_index.jsp</result>
<result name="success">/admin_pages/delete_shuiDian_success.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 更新水电 -->
<action name="updateShuiDian"
class="com.wf.ssm.action.ShuiDianAction" method="updateShuiDian">
<result name="success">/admin_pages/shuiDian_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 查询水电-->
<action name="selectShuiDian"
class="com.wf.ssm.action.ShuiDianAction" method="selectShuiDian">
<result name="success">/admin_pages/shuiDian_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 用户查询水电 -->
<action name="selectShuiDian2"
class="com.wf.ssm.action.ShuiDianAction" method="selectShuiDian">
<result name="success">/user_pages/condition_shuiDian_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 条件查询水电-->
<action name="shuiDian_*"
class="com.wf.ssm.action.ShuiDianAction" method="{1}">
<result name="{1}">/admin_pages/condition_shuiDian_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 添加报修-->
<action name="insertSuSheBaoXiu"
class="com.wf.ssm.action.SuSheBaoXiuAction" method="insertSuSheBaoXiu">
<result name="success">/admin_pages/suSheBaoXiu_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 删除报修-->
<action name="deleteSuSheBaoXiu"
class="com.wf.ssm.action.SuSheBaoXiuAction" method="deleteSuSheBaoXiu">
<result name="input">/admin_pages/suSheBaoXiu_index.jsp</result>
<result name="success">/admin_pages/delete_suSheBaoXiu_success.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 更新报修 -->
<action name="updateSuSheBaoXiu"
class="com.wf.ssm.action.SuSheBaoXiuAction" method="updateSuSheBaoXiu">
<result name="success">/admin_pages/suSheBaoXiu_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 查询报修-->
<action name="selectSuSheBaoXiu"
class="com.wf.ssm.action.SuSheBaoXiuAction" method="selectSuSheBaoXiu">
<result name="success">/admin_pages/suSheBaoXiu_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 学生查询报修 -->
<action name="selectSuSheBaoXiu2"
class="com.wf.ssm.action.SuSheBaoXiuAction" method="selectSuSheBaoXiu">
<result name="success">/user_pages/condition_suSheBaoXiu_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 条件查询报修-->
<action name="suSheBaoXiu_*"
class="com.wf.ssm.action.SuSheBaoXiuAction" method="{1}">
<result name="{1}">/admin_pages/condition_suSheBaoXiu_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 添加违规-->
<action name="insertSuSheWeiGui"
class="com.wf.ssm.action.SuSheWeiGuiAction" method="insertSuSheWeiGui">
<result name="success">/admin_pages/suSheWeiGui_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 删除违规-->
<action name="deleteSuSheWeiGui"
class="com.wf.ssm.action.SuSheWeiGuiAction" method="deleteSuSheWeiGui">
<result name="input">/admin_pages/suSheWeiGui_index.jsp</result>
<result name="success">/admin_pages/delete_suSheWeiGui_success.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 更新违规 -->
<action name="updateSuSheWeiGui"
class="com.wf.ssm.action.SuSheWeiGuiAction" method="updateSuSheWeiGui">
<result name="success">/admin_pages/suSheWeiGui_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 查询违规-->
<action name="selectSuSheWeiGui"
class="com.wf.ssm.action.SuSheWeiGuiAction" method="selectSuSheWeiGui">
<result name="success">/admin_pages/suSheWeiGui_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 用户查询违规 -->
<action name="selectSuSheWeiGui2"
class="com.wf.ssm.action.SuSheWeiGuiAction" method="selectSuSheWeiGui">
<result name="success">/user_pages/condition_suSheWeiGui_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 条件查询违规-->
<action name="suSheWeiGui_*"
class="com.wf.ssm.action.SuSheWeiGuiAction" method="{1}">
<result name="{1}">/admin_pages/condition_suSheWeiGui_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 添加晚归-->
<action name="insertWanGui"
class="com.wf.ssm.action.WanGuiAction" method="insertWanGui">
<result name="success">/admin_pages/wanGui_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 删除晚归-->
<action name="deleteWanGui"
class="com.wf.ssm.action.WanGuiAction" method="deleteWanGui">
<result name="input">/admin_pages/wanGui_index.jsp</result>
<result name="success">/admin_pages/delete_wanGui_success.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 更新晚归 -->
<action name="updateWanGui"
class="com.wf.ssm.action.WanGuiAction" method="updateWanGui">
<result name="success">/admin_pages/wanGui_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 查询晚归-->
<action name="selectWanGui"
class="com.wf.ssm.action.WanGuiAction" method="selectWanGui">
<result name="success">/admin_pages/wanGui_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 用户查询晚归记录 -->
<action name="selectWanGui2"
class="com.wf.ssm.action.WanGuiAction" method="selectWanGui">
<result name="success">/user_pages/condition_wanGui_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 条件查询晚归-->
<action name="wanGui_*"
class="com.wf.ssm.action.WanGuiAction" method="{1}">
<result name="{1}">/admin_pages/condition_wanGui_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 添加评分-->
<action name="insertPingFen"
class="com.wf.ssm.action.PingFenAction" method="insertPingFen">
<result name="success">/admin_pages/pingFen_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 删除评分-->
<action name="deletePingFen"
class="com.wf.ssm.action.PingFenAction" method="deletePingFen">
<result name="input">/admin_pages/pingFen_index.jsp</result>
<result name="success">/admin_pages/delete_pingFen_success.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 更新评分 -->
<action name="updatePingFen"
class="com.wf.ssm.action.PingFenAction" method="updatePingFen">
<result name="success">/admin_pages/pingFen_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 查询评分-->
<action name="selectPingFen"
class="com.wf.ssm.action.PingFenAction" method="selectPingFen">
<result name="success">/admin_pages/pingFen_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 学生查询评分 -->
<action name="selectPingFen2"
class="com.wf.ssm.action.PingFenAction" method="selectPingFen">
<result name="success">/user_pages/condition_pingFen_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 条件查询评分-->
<action name="pingFen_*"
class="com.wf.ssm.action.PingFenAction" method="{1}">
<result name="{1}">/admin_pages/condition_pingFen_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 添加公告-->
<action name="insertNews"
class="com.wf.ssm.action.NewsAction" method="insertNews">
<result name="success">/admin_pages/news_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 删除公告-->
<action name="deleteNews"
class="com.wf.ssm.action.NewsAction" method="deleteNews">
<result name="input">/admin_pages/news_index.jsp</result>
<result name="success">/admin_pages/delete_news_success.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 更新公告 -->
<action name="updateNews"
class="com.wf.ssm.action.NewsAction" method="updateNews">
<result name="success">/admin_pages/news_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 查询公告-->
<action name="selectNews"
class="com.wf.ssm.action.NewsAction" method="selectNews">
<result name="success">/admin_pages/news_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 学生查询公告 -->
<action name="selectNews2"
class="com.wf.ssm.action.NewsAction" method="selectNews">
<result name="success">/user_pages/condition_news_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 条件查询公告-->
<action name="news_*"
class="com.wf.ssm.action.NewsAction" method="{1}">
<result name="{1}">/admin_pages/condition_news_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 添加留校-->
<action name="insertLiuXiao"
class="com.wf.ssm.action.LiuXiaoAction" method="insertLiuXiao">
<result name="success">/admin_pages/liuXiao_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 删除留校-->
<action name="deleteLiuXiao"
class="com.wf.ssm.action.LiuXiaoAction" method="deleteLiuXiao">
<result name="input">/admin_pages/liuXiao_index.jsp</result>
<result name="success">/admin_pages/delete_liuXiao_success.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 更新留校 -->
<action name="updateLiuXiao"
class="com.wf.ssm.action.LiuXiaoAction" method="updateLiuXiao">
<result name="success">/admin_pages/liuXiao_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 查询留校-->
<action name="selectLiuXiao"
class="com.wf.ssm.action.LiuXiaoAction" method="selectLiuXiao">
<result name="success">/admin_pages/liuXiao_index.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 学生查看留校信息 -->
<action name="selectLiuXiao2"
class="com.wf.ssm.action.LiuXiaoAction" method="selectLiuXiao">
<result name="success">/user_pages/condition_liuXiao_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
<!-- 条件查询留校-->
<action name="liuXiao_*"
class="com.wf.ssm.action.LiuXiaoAction" method="{1}">
<result name="{1}">/admin_pages/condition_liuXiao_result.jsp</result>
<result name="error">/admin_pages/error.jsp</result>
</action>
</package>
</struts>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- web.xml 的加载顺序是:ServletContext-> context-param ->listener -> filter -> servlet,
而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的。 -->
<context-param>
<!--配置spring的配置文件 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<context-param>
<!--配置项目运行日志的配置文件 -->
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<!--配置spring监听文件-->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<!--配置log4j监听文件 -->
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
<!--字符编码-->
<filter>
<filter-name>encoding</filter-name>
<filter-class>com.wf.ssm.tools.EncodeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<!--配置struts2的配置文件 -->
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<!--配置struts2过滤 /* 指过滤所有,也可以自行配置过滤特定,默认是action -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<!--配置项目起始页面 -->
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
package com.wf.ssm.tools;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EncodeFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
}
}
解决中文乱码的一种方式。