- 浏览: 152835 次
- 性别:
- 来自: 杭州
文章分类
最新评论
准备条件:
1. 建WEB工程:ssh2
2. 建数据库ssh2,表user
3. 导入struts2,hibernate,spring包,注意包冲突,另导入commons-dbcp.jar, commons-pool.jar数据库连接池包
具体步骤如下:
1. 实体类
1.1 User.java
2. 数据库层
2.1 UserDAO.java
2.2 UserDAOImpl.java
3. 业务逻辑层
3.1 UserService.java
3.2 UserServiceImpl.java
4. 表示层
4.1 AddUserAction.java
4.2 DeleteUserAction.java
4.3 ListUserAction.java
4.4 UpdateAction.java
4.5 UpdatePAction.java
5. 配置文件
5.1 struts.xml
5.2 applicationContext.xml(放到WEB-INF下)
6. 映射文件
5.1 User.hbm.xml
7. 页面
7.1 index.jsp
7.2 list.jsp
7.3 add.jsp
7.4 update.jsp
应该是可以看到的,主要内容是:
1.需要导入struts2-spring-plugin-2.1.8.1.jar包
这个包是Struts与spring整合的必须的
3.看下asm.jar文件有没有重复的,有的话保留asm.jar,删除另外一个。
4.web.xml中找到如下并改正,Struts2的核心类是下面这个。
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
5.想修改spring配置文件的位置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/bean.xml</param-value>
</context-param>
6.web.xml例子如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,../struts.xml</param-value>
</init-param>
<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>/*</url-pattern>
</filter-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
谢谢这位兄弟提醒,我也发现了这个问题,已在这个链接中写得很详细,谢谢指正。
http://lijunaccp.iteye.com/admin/blogs/838758
1. 建WEB工程:ssh2
2. 建数据库ssh2,表user
3. 导入struts2,hibernate,spring包,注意包冲突,另导入commons-dbcp.jar, commons-pool.jar数据库连接池包
具体步骤如下:
1. 实体类
1.1 User.java
package com.ssh2.bean; public class User { private int id; private String firstname; private String lastname; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getFirstname() { return firstname; } public void setFirstname(String firstname) { this.firstname = firstname; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname = lastname; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
2. 数据库层
2.1 UserDAO.java
package com.ssh2.dao; import java.util.List; import com.ssh2.bean.User; public interface UserDAO { public void saveUser(User user); public void updateUser(User user); public void deleteUser(User user); public List<User> getAllUsers(); public User getUser(Integer id); }
2.2 UserDAOImpl.java
package com.ssh2.dao.impl; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.ssh2.bean.User; import com.ssh2.dao.UserDAO; public class UserDAOImpl extends HibernateDaoSupport implements UserDAO { public void saveUser(User user) { this.getHibernateTemplate().save(user); } @SuppressWarnings("unchecked") public List<User> getAllUsers() { List<User> users=(List<User>)this.getHibernateTemplate().find("from User"); return users; } public User getUser(Integer id) { return (User)this.getHibernateTemplate().get(User.class, id); } public void updateUser(User user) { this.getHibernateTemplate().saveOrUpdate(user); } public void deleteUser(User user) { this.getHibernateTemplate().delete(user); } }
3. 业务逻辑层
3.1 UserService.java
package com.ssh2.service; import java.util.List; import com.ssh2.bean.User; public interface UserService { public void addUser(User user); public void updateUser(User user); public void deleteUser(User user); public List<User> getAllUsers(); public User getUser(Integer id); }
3.2 UserServiceImpl.java
package com.ssh2.service.impl; import java.util.List; import com.ssh2.bean.User; import com.ssh2.dao.UserDAO; import com.ssh2.service.UserService; public class UserServiceImpl implements UserService { private UserDAO userDAO; public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } public void addUser(User user) { userDAO.saveUser(user); } public List<User> getAllUsers() { return userDAO.getAllUsers(); } public User getUser(Integer id) { return userDAO.getUser(id); } public void updateUser(User user) { userDAO.updateUser(user); } public void deleteUser(User user) { userDAO.deleteUser(user); } }
4. 表示层
4.1 AddUserAction.java
package com.ssh2.action.user; import com.opensymphony.xwork2.ActionSupport; import com.ssh2.bean.User; import com.ssh2.service.UserService; @SuppressWarnings("serial") public class AddUserAction extends ActionSupport { private User user; private UserService userService; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public void setUserService(UserService userService) { this.userService = userService; } @Override public String execute() throws Exception { userService.addUser(user); return SUCCESS; } }
4.2 DeleteUserAction.java
package com.ssh2.action.user; import com.opensymphony.xwork2.ActionSupport; import com.ssh2.bean.User; import com.ssh2.service.UserService; @SuppressWarnings("serial") public class DeleteUserAction extends ActionSupport { private User user; private UserService userService; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public void setUserService(UserService userService) { this.userService = userService; } @Override public String execute() throws Exception { userService.deleteUser(user); return SUCCESS; } }
4.3 ListUserAction.java
package com.ssh2.action.user; import java.util.List; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.ssh2.bean.User; import com.ssh2.service.UserService; @SuppressWarnings("serial") public class ListUserAction extends ActionSupport { private UserService userService; public void setUserService(UserService userService) { this.userService = userService; } @Override @SuppressWarnings("unchecked") public String execute() throws Exception { List<User> users=userService.getAllUsers(); Map request=(Map)ActionContext.getContext().get("request"); request.put("users", users); return SUCCESS; } }
4.4 UpdateAction.java
package com.ssh2.action.user; import com.opensymphony.xwork2.ActionSupport; import com.ssh2.bean.User; import com.ssh2.service.UserService; @SuppressWarnings("serial") public class UpdateAction extends ActionSupport { private User user; private UserService userService; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public void setUserService(UserService userService) { this.userService = userService; } @Override public String execute() throws Exception { userService.updateUser(user); return SUCCESS; } }
4.5 UpdatePAction.java
package com.ssh2.action.user; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.ssh2.bean.User; import com.ssh2.service.UserService; public class UpdatePAction extends ActionSupport { private User user; private UserService userService; public void setUser(User user) { this.user = user; } public User getUser() { return user; } public void setUserService(UserService userService) { this.userService = userService; } @Override public String execute() throws Exception { Map map=(Map)ActionContext.getContext().get("request"); map.put("user", this.userService.getUser(user.getId())); return SUCCESS; } }
5. 配置文件
5.1 struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="ssh2" extends="struts-default"> <action name="addUser" class="addUserAction"> <result name="success" type="redirect">listUser.action</result> </action> <action name="listUser" class="listUserAction"> <result name="success">/list.jsp</result> </action> <action name="updateP" class="updatePAction"> <result name="success">/update.jsp</result> </action> <action name="update" class="updateAction"> <result name="success" type="redirect">listUser.action</result> </action> <action name="deleteUser" class="deleteUserAction"> <result name="success" type="redirect">listUser.action</result> </action> </package> </struts>
5.2 applicationContext.xml(放到WEB-INF下)
<?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:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="ds" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/ssh2</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>root</value> </property> </bean> <bean id="sf" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="ds"></property> <property name="mappingResources"> <list> <value>com/ssh2/bean/User.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> </bean> <bean id="userDAO" class="com.ssh2.dao.impl.UserDAOImpl"> <property name="sessionFactory" ref="sf"></property> </bean> <bean id="userService" class="com.ssh2.service.impl.UserServiceImpl"> <property name="userDAO" ref="userDAO"></property> </bean> <bean id="addUserAction" class="com.ssh2.action.user.AddUserAction"> <property name="userService" ref="userService"></property> </bean> <bean id="listUserAction" class="com.ssh2.action.user.ListUserAction"> <property name="userService" ref="userService"></property> </bean> <bean id="updatePAction" class="com.ssh2.action.user.UpdatePAction"> <property name="userService" ref="userService"></property> </bean> <bean id="updateAction" class="com.ssh2.action.user.UpdateAction"> <property name="userService" ref="userService"></property> </bean> <bean id="deleteUserAction" class="com.ssh2.action.user.DeleteUserAction"> <property name="userService" ref="userService"></property> </bean> </beans>
6. 映射文件
5.1 User.hbm.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > <hibernate-mapping> <class name="com.ssh2.bean.User" table="user"> <id name="id" column="id" type="integer"> <generator class="increment"></generator> </id> <property name="firstname" column="firstname" type="string"></property> <property name="lastname" column="lastname" type="string"></property> <property name="age" column="age" type="integer"></property> </class> </hibernate-mapping>
7. 页面
7.1 index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>首页</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <s:a href="add.jsp">增加用户</s:a><br/> <s:a href="listUser.action">用户列表</s:a> </body> </html>
7.2 list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!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>用户列表</title> </head> <body> <table border="1" cellpadding="1" cellspacing="0" align="center" width="60%"> <tr> <th>id</th> <th>firstname</th> <th>lastname</th> <th>age</th> <th>update</th> <th>delete</th> </tr> <s:iterator value="#request.users" id="user"> <tr> <td><s:property value="#user.id" /></td> <td><s:property value="#user.firstname" /></td> <td><s:property value="#user.lastname" /></td> <td><s:property value="#user.age" /></td> <td><s:a href="updateP.action?user.id=%{#user.id}">update</s:a></td> <td><s:a href="deleteUser.action?user.id=%{#user.id}">delete</s:a></td> </tr> </s:iterator> </table> </body> </html>
7.3 add.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!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>注册用户</title> </head> <body> <s:form action="addUser"> <s:textfield name="user.firstname" label="firstname"></s:textfield> <s:textfield name="user.lastname" label="lastname"></s:textfield> <s:textfield name="user.age" label="age"></s:textfield> <s:submit value="submit"></s:submit> </s:form> </body> </html>
7.4 update.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!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>更新用户</title> </head> <body> <s:form action="update.action"> <s:hidden name="user.id" value="%{#request.user.id}" ></s:hidden> <s:textfield name="user.firstname" value="%{#request.user.firstname}" label="firstname"></s:textfield> <s:textfield name="user.lastname" value="%{#request.user.lastname}" label="lastname"></s:textfield> <s:textfield name="user.age" value="%{#request.user.age}" label="age"></s:textfield> <s:submit value="submit"></s:submit> </s:form> </body> </html>
评论
9 楼
stuxnet
2013-01-23
struts 内action间的跳转要加"redirect-action"
8 楼
stuxnet
2013-01-23
亲,struts.xml怎么报错咧Invalid result location value/parameter
7 楼
stuxnet
2013-01-22
求项目war包或者rar包
6 楼
stuxnet
2013-01-22
不错求jar包,及相关的xml配置文件
5 楼
lijunaccp
2012-06-19
xiaoyao7707 写道
楼主您好,您的http://lijunaccp.iteye.com/admin/blogs/838758
这个链接我看不了,在哪还能看到您的web.xml的配置呢
这个链接我看不了,在哪还能看到您的web.xml的配置呢
应该是可以看到的,主要内容是:
1.需要导入struts2-spring-plugin-2.1.8.1.jar包
这个包是Struts与spring整合的必须的
3.看下asm.jar文件有没有重复的,有的话保留asm.jar,删除另外一个。
4.web.xml中找到如下并改正,Struts2的核心类是下面这个。
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
5.想修改spring配置文件的位置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/bean.xml</param-value>
</context-param>
6.web.xml例子如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,../struts.xml</param-value>
</init-param>
<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>/*</url-pattern>
</filter-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
4 楼
lijunaccp
2012-06-19
你好,应该是可以看到的呀,主要内容如下:
3 楼
xiaoyao7707
2012-06-18
楼主您好,您的http://lijunaccp.iteye.com/admin/blogs/838758
这个链接我看不了,在哪还能看到您的web.xml的配置呢
这个链接我看不了,在哪还能看到您的web.xml的配置呢
2 楼
lijunaccp
2011-04-02
hxz_qlh 写道
楼主很有心啊
写的灰常仔细
不过,美中不足的是 web.xml 文件的配置漏写了哈。。。。
期待楼主将功补过!
写的灰常仔细
不过,美中不足的是 web.xml 文件的配置漏写了哈。。。。
期待楼主将功补过!
谢谢这位兄弟提醒,我也发现了这个问题,已在这个链接中写得很详细,谢谢指正。
http://lijunaccp.iteye.com/admin/blogs/838758
1 楼
hxz_qlh
2011-04-01
楼主很有心啊
写的灰常仔细
不过,美中不足的是 web.xml 文件的配置漏写了哈。。。。
期待楼主将功补过!
写的灰常仔细
不过,美中不足的是 web.xml 文件的配置漏写了哈。。。。
期待楼主将功补过!
发表评论
-
struts2.1改变配置文件默认位置
2011-03-31 14:01 747<filter> <init-par ... -
整合SSH2时需注意几点
2010-12-10 16:35 8161.需要导入struts2-spring-plugin-2.1 ... -
spring整合hibernate
2010-11-08 08:59 796准备条件: 1. 创建数据库hibernatespring,表 ... -
代理模式
2010-11-08 08:58 811一. 静态代理 1. Subject.java packa ... -
单例模式
2010-11-08 08:57 6271. Singleton.java package com ... -
spring整合struts2
2010-11-08 08:56 714前言: 1. 创建工程strutsspring 2. 导入st ... -
反射案例
2010-11-08 08:56 681案例一: 1. Test.java package com ... -
spring配置文件中集合类型的配置
2010-11-08 08:54 923前言: Spring中对于有些bean会有集合类型的属性,以下 ... -
spring用到的设计模式-工厂模式
2010-11-08 08:53 1208Spring用到的设计模式之一 核心:用到工厂设计模式 1. ... -
读取applicationContext.xml的两种方式
2010-11-08 08:52 910第一种: ClassPathResource cpr=ne ... -
用图形查看spring配置文件依赖关系
2010-11-08 08:51 907myeclipse提供了这样的功能: window->s ... -
spring的基本操作IOC
2010-11-08 08:51 702前言: Spring通过IOC/DI来实现获取对象 准备: 1 ... -
spring的基本操作-反射
2010-11-08 08:50 1080前言: Spring通过反射来实现获取对象 准备: 1. 建S ... -
Struts2整合Hibernate
2010-10-29 19:00 19851. 准备条件: 1.1 在MYSQL中创建hibernate ... -
hibernate级联操作
2010-10-29 18:59 867准备条件: 1. 创建hibernate3工程 2. 导入hi ... -
hibernate基本操作
2010-10-29 18:58 7141.准备条件: 1.1 创建hibernate2工程 1.2 ... -
JDBC
2010-10-29 18:56 733一. JDBC连接Access实例 1. 准备条件 1.1 创 ... -
文件上传
2010-10-26 14:49 6591. upload.jsp <%@ page lan ... -
调用指定Action的方法
2010-10-26 14:48 728主要在配置文件中配置下: 注:如应用于增删改查的类 1. st ... -
I18N
2010-10-26 14:47 772一, 查看当前操作系统中可用的语言 package com ...
相关推荐
SSH2框架搭建实例(spring3.2+strust2.3.4+hibernate4.2)全部采用最新版本.演示了用户登录和用户管理
一次下载,SSH2框架的搭建步骤 全部文档资料都有。 对于新手来说,独自完成一个完整正确的SSH框架可能是一个相当困难麻烦的事。在此我利用Myeclipse+mysql环境下使用截图外加简略文字引导初学者一步一步的搭建出一个...
ssh2框架练习项目及代码 ssh2框架练习项目及代码 ssh2框架练习项目及代码
WebSSH2基于Web的SSH2客户端,使用xterm.js,socket.io和ssh2实现
基于SSH2实现的团购网站 数据库是MySQL 有说明文档
ganymed-ssh2-build ssh2 ch.ethz.ssh2.Connection ch.ethz.ssh2.SCPClient
最基础的ssh2简单实例,帮助了解ssh2框架的搭建。
利用ch.ethz.ssh2操作进行SSH进行操作下载文件代码,主要利用Linux命令进行操作,方便简单
ssh2_for_php5.6 ssh2_for_php5.6 ssh2_for_php5.6 ssh2_for_php5.6
ssh2 - 一个SSH2 客户端和服务器node.js模块
SSh2最好的入门项目,保证能运行,初学者来说最好的SSH2入门项目。 学生如果下载的话
使用 ganymed-ssh2-262.jar 通过ssh协议链接资源执行脚本命令 使用 ganymed-ssh2-262.jar 通过ssh协议链接资源执行脚本命令
ssh2jar包ssh2框架jar包不好用请喷我,好用请收藏谢谢
ssh2项目练习 ssh2项目练习 ssh2项目练习 ssh2项目练习
调试通过的 ssh2 全注解的 jar包。 ssh2 乱七八糟 jar太多了 版本对应 兼容 很麻烦。 整理了 这个汇总的jar包。 有需要的下。
s2sh,ssh2集成 s2sh,ssh2集成 s2sh,ssh2集成
SSH2项目,个人做的,增删改查,个人觉得还不错!
自从前些日子发布了如何整合JBPM4.4+ssh2后,有些朋友问我有没有一个完整一点的实例,我看过贩卖你的jbpm的教程,我就参考那个请假的实例把它改装成ssh2版的吧。顺便也加入了模拟不同的角色登陆后能接到不同的待办...
ssh2 集成 并附加 ssh2 登录实现
ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整项目ssh2完整...