博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ssh整合
阅读量:4626 次
发布时间:2019-06-09

本文共 11328 字,大约阅读时间需要 37 分钟。

一、引入Struts的jar包,spring的jar包,hibernate的jar包,Apache的一些jar包,还有加入struts2-spring-plugin-2.3.28.jar这个插件jar包,截图如下:

当然现在的Java开发都流行maven管理了,我这里只是找点从前的感觉,嫌烦的话就用maven,配置相关的jar包即可

二、web.xml的配置

ssh_01000
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
contextConfigLocation
classpath:beans.xml
org.springframework.web.context.ContextLoaderListener
openSessionInView
org.springframework.orm.hibernate5.support.OpenSessionInViewFilter
sessionFactoryBeanName
sessionFactory
openSessionInView
/*
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
Spring character encoding filter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
Spring character encoding filter
/*

三、Struts.xml

             
fineUser
/WEB-INF/jsp/error.jsp
     
注释结束-->
  
/success.jsp
/register.jsp
/showusers.jsp
/register.jsp

四、spring的配置文件

     
youth.hong.User
org.hibernate.dialect.MySQL5Dialect
true
true
update

五、Java类,这里就做个登录注册的来说明ssh的整合

1、JavaBean类User.java

package youth.hong;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;//hibernate注解@Entitypublic class User {    private int id;    private int pid;    public int getPid() {        return pid;    }    public void setPid(int pid) {        this.pid = pid;    }    @Id    @GeneratedValue(strategy=GenerationType.IDENTITY)    public int getId() {        return id;    }        public void setId(int id) {        this.id = id;    }    private String username;        private String password;    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;    }        }

2、Action类

package youth.hong;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;@SuppressWarnings("serial")public class Check extends ActionSupport implements ModelDriven
{ private User user = new User(); /*private String username; private String password; //private ClassPathXmlApplicationContext applicationContext; 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; }*/ private UserServiceDao userService; public UserServiceDao getUserService() { return userService; } public void setUserService(UserServiceDao userService) { this.userService = userService; } public String fineUser() { int id = user.getId(); System.out.println(id); user = userService.loadById(id); return "showoneuser"; } public void setUser(User user) { this.user = user; } @Override public String execute() throws Exception {// applicationContext = new ClassPathXmlApplicationContext("beans.xml");// UserServiceDao userService = (UserServiceDao)applicationContext.getBean("userService"); System.out.println(userService); System.out.println(user.getPid()); System.out.println(user.getUsername()); boolean t = userService.save(user); if(t) { this.addFieldError("usererror", "用户名冲突,注册失败!"); return INPUT; } return SUCCESS; } public User getUser() { return user; } @Override public User getModel() { return user; } }

3、UserService接口类

package youth.hong;import java.util.List;public interface UserServiceDao {        public UserDao getUserDao();    public void setUserDao(UserDao userDao);        public boolean save(User user);        public boolean isExists(User user);        public List
getUsers(); public User loadById(int id);}

4、UserServiceImpl类

package youth.hong;import java.util.List;import org.springframework.transaction.annotation.Transactional;public class UserServiceImpl implements UserServiceDao {        private UserDao userDao;    public UserDao getUserDao() {        return userDao;    }    public void setUserDao(UserDao userDao) {        this.userDao = userDao;    }    @Transactional    public boolean save(User user) {        boolean t = isExists(user);        if(t) {            return t;        }        userDao.save(user);        return false;    }    @Override    public boolean isExists(User user) {        return userDao.isExists(user);    }    @Override    public List
getUsers() { return userDao.getUsers(); } @Override @Transactional public User loadById(int id) { return userDao.loadById(id); } }

5、UserDao类

package youth.hong;import java.util.List;public interface UserDao {    public void save(User user);    public boolean isExists(User user);    public List
getUsers(); public User loadById(int id);}

6、UserDaoImpl类

package youth.hong;import java.util.List;public class UserDaoImpl extends SuperDao implements UserDao {                @Override    public void save(User user) {        this.getHibernateTemplate().save(user);    }    @Override    public boolean isExists(User user) {        String sql = "from User u where u.username=?";        @SuppressWarnings("unchecked")        List
users = (List
) this.getHibernateTemplate().find(sql, user.getUsername()); if(users.size() > 0) { return true; } return false; } @SuppressWarnings("unchecked") @Override public List
getUsers() { String sql = "from User"; return (List
) this.getHibernateTemplate().find(sql); } @Override public User loadById(int id) { User user = (User)this.getHibernateTemplate().load(User.class,id); //System.out.println(user); return user; }}

7、SuperDao

package youth.hong;import org.hibernate.SessionFactory;/** * 给其他的Dao类继承,使用它注入sessionFactory,省去重复注入的麻烦 * @author may * */public class SuperDao extends org.springframework.orm.hibernate5.support.HibernateDaoSupport {        public void setSuperSessionFactory(SessionFactory sessionFactory) {        super.setSessionFactory(sessionFactory);    }}

8、列出数据库中存在的User信息

package youth.hong;import java.util.List;import com.opensymphony.xwork2.ActionSupport;@SuppressWarnings("serial")public class ShowUsers extends ActionSupport {    private List
users = null; private UserServiceDao userService; public UserServiceDao getUserService() { return userService; } public void setUserService(UserServiceDao userService) { this.userService = userService; } public List
getUsers() { return users; } public void setUsers(List
users) { this.users = users; } @Override public String execute() throws Exception { users = userService.getUsers(); System.out.println(users.size()); return SUCCESS; } }

六、字段校验,跟action同目录

username
true     
username
error
true

七、全局i18n国际化配置信息文件,放在src下

global_en_US.properties

user.username=usernameuser.password=password

global_zh_CN.properties

user.username=\u7528\u6237\u540Duser.password=\u5BC6 \u7801requiredstringusername=\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7Arequiredstringpassword=\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A

 

 八、视图界面

Register.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib uri="/struts-tags" prefix="s" %><%System.out.println(request.getContextPath()); %>
Insert title here

用户列表界面

<%@page import="youth.hong.ShowUsers"%><%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib uri="/struts-tags" prefix="s" %>
Insert title here
用户列表

 

转载于:https://www.cnblogs.com/honger/p/6015758.html

你可能感兴趣的文章
bzoj1854: [Scoi2010]游戏
查看>>
linux 修改时区
查看>>
Android之自定义AlertDialog无法监听控件
查看>>
[Win]进程间通信——邮槽Mailslot
查看>>
第3章 模板
查看>>
Git创建本地分支并关联远程分支
查看>>
Java 访问权限控制:你真的了解 protected 关键字吗?
查看>>
八、LaTex中的表格
查看>>
MSSQLid清零
查看>>
C# using 语法说明
查看>>
Android与iOS对比
查看>>
前端常用正则表达式
查看>>
熟悉常用的Linux操作
查看>>
天平称球问题-转
查看>>
复制构造函数(拷贝构造函数)
查看>>
Android Fragment 真正的完全解析(上)
查看>>
preparedStatement平台:
查看>>
C++ RCSP智能指针简单实现与应用
查看>>
《java第二次实验》
查看>>
Oracle 高效分页
查看>>