上篇博客我们已经完成spring和Hibernate的整合测试,现在我们完成User类的spring和*struts2的整合 。
一、配置文件
JSP和action层的交互是由struts.xml完成的,我们在src目录下新建struts.xml
struts.xml
/user/login_success.jsp
/user/login.jsp
/user/register_success.jsp
/user/register.jsp
在上一篇博客的基础上,对applicationContext.xml进行改造,将UserAction交于spring管理,并在Userservice层,添加AOP事物管理。
applicationContext.xml
前面已经配置了service和dao,现在配置Action,新增配置:
二、JSP文件
在WebContent目录下新建user文件夹,创建user登录注册,登录成功,注册成功页面。
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<% String path=request.getContextPath()+"/";%>
登录界面
register.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<% String path=request.getContextPath()+"/";%>
注册页面
欢迎注册我们的系统,请认真填写你的信息
login_success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% String path=request.getContextPath()+"/";%>
登录成功
欢迎你,${userRealName },你登入成功!!!
进入名片管理系统,请点击名片管理系统
register.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% String path=request.getContextPath()+"/";%>
注册成功!
恭喜,${userRealName },你成功注册了我们得管理系统
登录
三、User的action、service、dao层配置
我们在登录注册页面上可以看到,form表单提交到UserAction层的方法中处理,由struts.xml配置转发,在src目录创建UserAction.java
UserAction.java
package cn.itcast.action.user;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import cn.itcast.model.user.User;
import cn.itcast.service.user.UserService;
@SuppressWarnings("serial")
public class UserAction extends ActionSupport implements ModelDriven {
//封装数据
public String forward;
public String msg;
private User user=new User();
public User getModel(){
return this.user;
}
//引用servicer层
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
public String register(){
User user1=this.userService.find(user);
if(user1.getUserName()!=null){
msg="该用户已经存在,请重新注册";
forward="registererror";
}else{
this.userService.save(user);
forward="registersuccess";
}
return forward;
}
public String login(){
User user2=this.userService.find(user);
if(user2.getUserName()!=null){
forward="loginsuccess";
user.setUserRealName(user2.getUserRealName());
}else{
msg="用户不存在或密码不正确,登录失败,请重新登录或注册";
forward="loginerror";
}
return forward;
}
}
UserAction-register-validation.xml,这个是strut2框架的专属表单验证文件
true
用户名不能为空
用户格式不正确!
true
密码不能为空
6
密码长度不能少于6位
确认密码不能为空
密码不一致!
同理,我们再创建Userservice、Userdao层方法
UserService.java
这里只提供增查方法
package cn.itcast.service.user;
import cn.itcast.model.user.User;
public interface UserService {
public User find(User user);
public void save(User user);
}
UserServiceImpl.java
package cn.itcast.service.user;
import cn.itcast.dao.user.UserDao;
import cn.itcast.model.user.User;
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public User find(User user) {
// TODO Auto-generated method stub
User user2=this.userDao.find(user);
return user2;
}
@Override
public void save(User user) {
// TODO Auto-generated method stub
this.userDao.save(user);
}
}
package cn.itcast.dao.user;
import cn.itcast.model.user.User;
public interface UserDao {
public void save(User user);
public User find(User user);
}
UserDaoImpl.java
package cn.itcast.dao.user;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.query.Query;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
import cn.itcast.model.user.User;
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
@Override
public void save(User user) {
// TODO Auto-generated method stub
this.getHibernateTemplate().save(user);
}
@Override
public User find(User user) {
// TODO Auto-generated method stub
User user3=new User();
Session session=this.getHibernateTemplate().getSessionFactory().getCurrentSession();
String hql="from User where userName=?0 and userPassword=?1";
Query query=session.createQuery(hql);
query.setParameter(0,user.getUserName());
query.setParameter(1,user.getUserPassword());
@SuppressWarnings("unchecked")
Listlist=query.list();
if(list != null && list.size() > 0){
user3 = list.get(0);
}
return user3;
}
}
下面,编写入口代码index.jsp启动项目,来测试一下。
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<% String path=request.getContextPath()+"/";%>
主界面
名片管理系统
用户管理登录系统
用户名片查询主页面
点击用户管理登录系统,跳转到用户登录界面,点击登录,显示需要注册
注册信息
注册成功,到数据库查看信息,跳转到注册成功页面,点击登录
登录成功
具体操作流程如上所述,下篇博客带来Card模块的增删改查,批量删除,模糊查询,信息以Excel表格方式导入导出
路是一步步走出来的,大家共勉。