struts2+ibatis+spring整合开发

Struts2+ibatis+spring整合开发1.工程结构图2.配置文件web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee /xml/ns/j2ee/web-app_2_4.xsd"> <welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml</param-value> </context-param><listener><listener-class>org.springframework.web.context.ContextLoaderList ener</listener-class></listener><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>如图:Struts.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><constant name="struts.objectFactory.spring.autoWire" value="type" /><constant name="struts.objectFactory" value="spring" /><include file="struts-default.xml"/><package name="struts2" extends="struts-default"><default-interceptor-ref name="paramsPrepareParamsStack" /> <!-- aciton的class为applicationContext.xml中的注册名 --><action name="login" class="LoginAction"><result name="success">/success.jsp</result><result name="input">/login.jsp</result></action><action name="save" class="LoginAction" method="save"><result name="success"type="redirect-action">show.action</result><result name="error">/error.jsp</result></action><action name="edit" class="LoginAction" method="edit"><result name="success">update.jsp</result></action><action name="update" class="LoginAction" method="update"> <result name="success"type="redirect-action">show.action</result><result name="error">/error.jsp</result></action><action name="delete" class="LoginAction" method="delete"> <result name="success"type="redirect-action">show.action</result><result name="error">/error.jsp</result></action><action name="show" class="LoginAction" method="findAllUser"> <result name="success">/list.jsp</result><result name="error">/error.jsp</result></action></package></struts>如图:Struts.properties#struts.url.http.port=8080struts.devMode=truestruts.configuration.xml.reload=truestruts.locale=zh_CNstruts.i18n.encoding=UTF-8struts.objectFactory=spring如图:sql-map-config.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapConfigPUBLIC "-////DTD SQL Map Config 2.0//EN""/dtd/sql-map-config-2.dtd"><sqlMapConfig><sqlMap resource="cn/hsw/model/user.xml"/></sqlMapConfig>如图:applicationContext.xml<?xml version="1.0" encoding="UTF-8"?><beans default-autowire="byType"xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.0.xsd"> <bean id="dataSource"class="mons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://127.0.0.1:3306/debug" /><property name="username" value="root" /><property name="password" value="123456" /></bean><bean id="client"class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="dataSource"><ref local="dataSource"/></property><property name="configLocation"><value>classpath:sql-map-config.xml</value></property></bean><!-- bean中的class为实现接口的类;property的name为类中引用的属性名称;ref 为spring注册的名称,如上面的client--><bean id="userDao"class="erDAO"><property name="client" ref="client" /></bean><bean id="userService"class="erService"><property name="userDAO" ref="userDao"></property> </bean><bean id="LoginAction" class="cn.hsw.action.Login"><property name="userService" ref="userService"></property> </bean></beans>如图:3.Login.javapackage cn.hsw.action;import java.util.List;import er;import cn.hsw.service.IUserService;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;import com.opensymphony.xwork2.Preparable;public class Login extends ActionSupport implements ModelDriven<User>,Preparable {private IUserService userService=null;private String id;private int pageIndex=1;private String pageBar;private List<User> list;private User user;public void prepare()throws Exception{if(id==null||id.length()==0){user=new User();}else{user=getUserService().getUserById(Integer.parseInt(id));}}public String execute()throws Exception{if(getUserService().isLogin(user)){return SUCCESS;}return INPUT;}public String save()throws Exception{if(getUserService().insertUser(user)){return SUCCESS;}return ERROR;}public String edit(){return SUCCESS;}public String update()throws Exception{if(getUserService().updateUser(user)){return SUCCESS;}return ERROR;}public String delete()throws Exception{if(getUserService().deleteUser(Integer.parseInt(id))){return SUCCESS;}return ERROR;}public String findAllUser()throws Exception{try {list=getUserService().getAllUser();} catch (Exception e) {}return SUCCESS;}public String getId() {return id;}public void setId(String id) {this.id = id;}public int getPageIndex() {return pageIndex;}public void setPageIndex(int pageIndex) { this.pageIndex = pageIndex;}public String getPageBar() {return pageBar;}public void setPageBar(String pageBar) { this.pageBar = pageBar;}public List<User> getList() {return list;}public void setList(List<User> list) {this.list = list;}public User getUser() {return user;}public void setUser(User user) {er = user;}public void setUserService(IUserService userService) { erService = userService;}public IUserService getUserService() {return userService;}public User getModel() {// TODO Auto-generated method stubreturn user;}}如图:IUserDAO.javapackage cn.hsw.dao;import java.util.List;import er; public interface IUserDAO {public List<User> getAllUser();public User getUserById(Integer id);public boolean isLogin(User user);public boolean insertUser(User user);public boolean updateUser(User user);public boolean deleteUser(Integer id);}如图:UserDAO.javapackage cn.hsw.dao;import java.util.List;import org.springframework.orm.ibatis.SqlMapClientTemplate;import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; import er;import com.ibatis.sqlmap.client.SqlMapClient;public class UserDAO implements IUserDAO {private SqlMapClient client = null;public boolean deleteUser(Integer id) {try {client.delete("deleteUser", id);return true;} catch (Exception e) {return false;}}public List<User> getAllUser() {List<User> list=null;try{list=client.queryForList("getAllUser");}catch(Exception e){e.getStackTrace();}return list;}public User getUserById(Integer id) {User user=null;try {user=(User) client.queryForObject("getUserById",id);return user;} catch (Exception e) {e.getStackTrace();}return user;}public boolean insertUser(User user) {try{client.insert("insertUser",user);return true;}catch(Exception e){return false;}}public boolean isLogin(User user) {try {User u=(User) client.queryForObject("checkUser",user);if(u!=null){return true;}} catch (Exception e) {e.getStackTrace();}return false;}public boolean updateUser(User user) {try {client.update("updateUser",user);return true;} catch (Exception e) {return false;}}public void setClient(SqlMapClient client) { this.client = client;}}如图:User.javapackage cn.hsw.model;public class User {private int id;private String username;private String password;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) { ername = username;}public String getPassword() {return password;}public void setPassword(String password) { this.password = password;}}如图:user.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapPUBLIC "-////DTD SQL Map 2.0//EN""/dtd/sql-map-2.dtd"><sqlMap namespace="User"><typeAlias alias="user" type="er"/><!-- 查询表中记录条数 --><select id="recordCount" resultClass="int"><![CDATA[select count(*) from user]]></select><select id="getUserById" parameterClass="int" resultClass="user"> <![CDATA[select * from user where id =#id#]]></select><select id="getAllUser" resultClass="user"><![CDATA[select * from user]]></select><select id="checkUser" parameterClass="user" resultClass="user"> <![CDATA[select * from user where username =#username# and password =#password#]]></select><!-- --><select id="firstPage" resultClass="user" parameterClass="user"> <![CDATA[select top $pagesize$ * from user order by id desc ]]></select><delete id="deleteUser" parameterClass="int"><![CDATA[delete from user where id= #id#]]></delete><update id="updateUser" parameterClass="user"><![CDATA[update user set username= #username#,password= #password# where id =#id#]]></update><insert id="insertUser" parameterClass="user"><![CDATA[insert into user(username,password)values(#username#,#password#)]]></insert></sqlMap>如图:IUserService.javapackage cn.hsw.service;import java.util.List;import er;public interface IUserService {public List<User> getAllUser();public User getUserById(Integer id);public boolean isLogin(User user);public boolean insertUser(User user);public boolean updateUser(User user);public boolean deleteUser(Integer id); }如图:UserService.javapackage cn.hsw.service;import java.util.List;import cn.hsw.dao.IUserDAO;import erDAO;import er;public class UserService implements IUserService { private IUserDAO userDAO=null;public void setUserDAO(UserDAO userDAO) { erDAO = userDAO;}public boolean deleteUser(Integer id) {return userDAO.deleteUser(id);}public List<User> getAllUser() {return userDAO.getAllUser();}public User getUserById(Integer id) {return userDAO.getUserById(id);}public boolean insertUser(User user) { return userDAO.insertUser(user); }public boolean isLogin(User user) { return userDAO.isLogin(user); }public boolean updateUser(User user) { return userDAO.updateUser(user); }}如图:4.页面adduser.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP 'adduser.jsp' starting page</title></head><body><s:form action="save" method="post"><s:textfield label="username" name="username"/><s:password label="password" name="password"/><s:submit value="save"/></s:form></body></html>如图:error.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP 'error.jsp' starting page</title></head><body>This is my JSP page. <br></body></html>如图:list.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP 'list.jsp' starting page</title></head><body><s:form action="show" method="post"><table width="50%" align="center"><tr><td align="center">userid</td><td align="center">username</td><td align="center">password</td></tr><s:iterator value="list" id="user" status="st"><tr><td align="center"><s:property value="id"/></td><td align="center"><s:property value="username"/></td><td align="center"><s:property value="password"/></td><td align="center"><s:url id="update" action="edit"><s:param name="id"><s:property value="id"/></s:param></s:url><s:a href="%{update}">update</s:a></td><td align="center"><s:url id="delete" action="delete"><s:param name="id"><s:property value="id" /></s:param></s:url><s:a href="%{delete}">delete</s:a></td></tr></s:iterator><tr><td colspan="4"><s:property value="#request.pageBar" escape="false"/> </td></tr></table></s:form> </body></html>如图:login.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP 'login.jsp' starting page</title></head><body><s:form action="login" method="post"><s:textfield label="username" name="username"/><s:password label="password" name="password"/><s:submit value="submit"/></s:form></body></html>如图:success.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags" %><html><head><title>success</title></head><body><a href="show.action">显示用户列表</a></br><a href="adduser.jsp">添加用户</a></body></html>如图:update.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags" %><html><head><title>update.jsp</title></head><body><s:form action="update" method="post"><s:textfield name="id" label="ID" value="%{id}" readonly="true"/> <s:textfield name="username" label="UserName" value="%{username}" required="true"/><s:textfield name="password" label="Password" value="%{password}" required="true"/><s:submit value="update"/></s:form></body></html>如图:5.jar包6.表userCREATE TABLE `user` (`id` int(11) NOT NULL auto_increment,`username` varchar(20) NOT NULL default '',`password` varchar(11) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=gbk。

合集下载

基于STRUTS2.0+SPRING+IBATIS技术的WEB开发

基于STRUTS2.0+SPRING+IBATIS技术的WEB开发

基于STRUTS2.0+SPRING+IBATIS技术的WEB开发摘要:随着b/s多层应用已成为web开发的主流,本文首先介绍了struts2.0、spring、ibatis这三种框架,随后介绍了如何使用这三种框架组合来实现web开发。

关键词:b/s struts2.0 spring ibatis随着中国软件的发展,不同于c/s软件,用户不需要在每台电脑上安装客户端软件,b/s软件只需要在联网电脑的浏览器中输入网址就可以访问远程的信息,因此b/s软件越来越受到用户的欢迎。

b/s 软件的开发有很多种方式,有不同的语言,本文主要介绍在struts2.0、spring、ibatis三种框架组合的基础上实现高校宿舍智能化、信息化管理的研究与实现。

1、struts2.0struts2的体系使用了webwork的设计核心,并大量使用拦截器来处理用户请求,从而允许用户的业务逻辑控制器与servlet api分离。

从数据流图上来看,struts2与webwork相差不大,struts2同样使用拦截器作为处理,以用户的业务逻辑控制器为目标,创建一个控制器代理。

控制器代理负责处理用户请求,处理用户请求时回调业务控制器的execute方法,该方法的返回值将决定了struts 2将怎样的视图资源呈现给用户。

2、springspring是目前java ee 领域中比较流行的一个开源框架,它的目的是为了解决企业应用程序开发的复杂性。

spring框架的分层架构允许在不同的层次上选择各种组件,所以spring可以和hibernate、struts以及jsf等框架结合起来。

spring框架是一个分层架构,由7个定义良好的模块组成。

spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。

组成spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。

3、ibatisibatis是以sql为中心的持久化层框架。

基于Struts2和Spring框架的Web整合开发研究

基于Struts2和Spring框架的Web整合开发研究

JavaBean 能够实现 EJB 的功能,是一个轻量级的 IoC(控制反转)和 AOP(面向切面编程)容器框架[2]。IoC 容器就是框架的核心机制,用 以实现松散藕合,由容器控制对象间依赖关系,减轻了组件间依赖 关系,提高组件的可移植性。IoC 又称为依赖注入,基本概念是不创 建对象,只描述创建方式,在代码中不直接与对象和服务连接,但在 配置文件中描述组件所需要服务项。控制反转模式的本质是将程序 之间关系的控制权由程序代码转移到外部容器[3]。
关键词: Struts2;Spring;MVC;整合开发
Key words: Struts2;Spring;MVC;Integration & Development
中 图 分 类 号 :TP311
文 献 标 识 码 :A
文 章 编 号 :1006-4311(2011)07-0168-02
0 引言 基于 MVC 模式的 Struts1 框架是 Web 应用开发最为流行的框 架,但是它由于采用侵入式的代码设计,代码与 JSP/Servlet 耦合紧 密,代码重用低、测试难,表现层技术只支持 JSP。新的 MVC 框架 Struts2 框架诞生克服了 Struts1 一些缺点,通过与其他框架整合,充 分发挥它的良好特性。本文拟整合 Struts2 和 Spring 框架来进行 Web 应用开发。 1 Struts2 框架 Struts2 框架由 3 部分组成:核心控制器、业务控制器和业务逻 辑组件 [1]。核心控制器由 FilterDispatcher 充当,负责拦截用户以. action 结尾的请求,该其转入框架处理。业务控制器 Action 类的实 例,包含了 execute()方法,返回值是字符串如 SUCCESS,与此对应 跳转到相应视图。处理请求的 Action 实例并不是业务控制器,而是 Action 代理。框架提通过拦截器将 HttpServletRequest 请求的参数 解,传入到 Action 中,执行相应方法处理请求。关于业务逻辑组件方 面,在实际的开发中一般通过工厂模式或者其他 IoC(控制反转)容 器来获得业务逻辑组件的实例。Struts2 具体的框架结构如图 1。

struts2+spring3+mybatis整合

struts2+spring3+mybatis整合

--src|-com.ssm|-action|-LoginAction.java|-entity|-User.java|-iface|-IUserDao.java|-impl|-UserDao.java|-seriface|-IUserServices.java|-impl|-UserServices.java|-sqlmap|-User.xmlapplicationContext.xmldatabase.Propertieslog4j.PropertiesmyBatis-config.xmlstruts.Propertiesstruts.xmlok直接上代码了:Action类: LoginAction.javapackage com.ssm.action;import java.util.ArrayList;import java.util.List;import com.opensymphony.xwork2.Action;import er;import com.ssm.seriface.IUserService;public class LoginAction implements Action{private User user;private IUserService userServices;public void setUserServices(IUserService userServices) {erServices = userServices;}public User getUser(){return user;}public void setUser(User user){er = user;}public String execute() throws Exception{String aaa= getUser().getId()+"";List userList= new ArrayList();userList= userServices.selectUserById(getUser().getId()); if(userList.size()>0){return Action.SUCCESS;}else{return Action.ERROR;}}}实体类User.javapackage com.ssm.entity;import java.io.Serializable;import java.util.Date;public class User implements Serializable{private int id;private String name;private String password;private Date birthday;public User(){}public User(String name, String password, Date birthday) {= name;this.password= password;this.birthday= birthday;}public int getId(){return id;}public void setId(int id){this.id = id;}public String getName(){return name;}public void setName(String name){ = name;}public String getPassword(){return password;}public void setPassword(String password){this.password = password;}public Date getBirthday(){return birthday;}public void setBirthday(Date birthday){this.birthday = birthday;}}IUserDao接口类IUserDao.javapackage com.ssm.iface;import java.util.List;public interface IUserDao{public boolean userVaild(String name, String password);public List selectUserById(int id);}UserDaoImpl实现接口类:UserDaoImpl.javapackage com.ssm.iface.impl;import java.util.List;import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; import com.ssm.iface.IUserDao;//import com.ssb.baseutil.SqlMapClientDaoSupport;//import com.ssb.iface.IUserDao;//import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; public class UserDaoImpl extends SqlMapClientDaoSupport implements IUserDao {public List selectUserById(int id){// TODO Auto-generated method stubreturn getSqlMapClientTemplate().queryForList("selectUserById", id);}public boolean userVaild(String name, String password){// TODO Auto-generated method stubreturn false;}/*public boolean userVaild(String name, String password){return false;}public List selectUserById(String id){return getSqlMapClientTemplate().queryForList("getUserById", id);}*/}业务类IUserServices.javapackage com.ssm.seriface;import java.util.List;public interface IUserService{public boolean userVaild(String name, String password); public List selectUserById(int id);}UserServicesImpl.javapackage com.ssm.seriface.impl;import java.util.List;import com.ssm.iface.IUserDao;import com.ssm.seriface.IUserService;public class UserServiceImpl implements IUserService{private IUserDao serviceUserDao= null;public IUserDao getServiceUserDao(){return serviceUserDao;}public void setServiceUserDao(IUserDao serviceUserDao) {this.serviceUserDao = serviceUserDao;}public List selectUserById(int id){// TODO Auto-generated method stubreturn serviceUserDao.selectUserById(id);}public boolean userVaild(String name, String password){// TODO Auto-generated method stubreturn erVaild(name, password);}}mybatis实体配置文件User.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC"-////DTD Mapper 3.0//EN""/dtd/mybatis-3-mapper.dtd"><mapper namespace="user"><resultMap type="User" id="userResultMap"><id property="id" column="ID"/><result property="name" column="NAME"/><result property="password" column="PASSWORD"/><result property="birthday" column="BIRTHDAY"/></resultMap><select id="selectUserById" parameterType="ng.String" resultType="User"><![CDATA[SELECT * FROM USER SUWHERE SU.ID = #{id}]]></select></mapper>sprng配置文件applicationContext.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p" xmlns:context="/schema/context"xmlns:jee="/schema/jee" xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.5.xsd/schema/context/schema/context/spring-context-2.5.xsd/schema/jee/schema/jee/spring-jee-2.5.xsd/schema/tx/schema/tx/spring-tx-2.5.xsd"><!-- 数据源属性配置文件--><!-- <bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location" value="classpath:com/databaseconfig/database.properties"/></bean>--><context:property-placeholder location="classpath:database.properties"/><bean id="dataSource" class="boPooledDataSource"><property name="driverClass" value="${jdbc.driverClassName}" /><property name="jdbcUrl" value="${jdbc.url}" /><property name="user" value="${ername}" /><property name="password" value="${jdbc.password}" /><property name="autoCommitOnClose" value="true"/><property name="checkoutTimeout" value="${cpool.checkoutTimeout}"/><property name="initialPoolSize" value="${cpool.minPoolSize}"/><property name="minPoolSize" value="${cpool.minPoolSize}"/><property name="maxPoolSize" value="${cpool.maxPoolSize}"/><property name="maxIdleTime" value="${cpool.maxIdleTime}"/><property name="acquireIncrement" value="${cpool.acquireIncrement}"/><property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}"/> </bean><!-- 数据连接管理--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!-- myBatis文件--><!--<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="configLocation" value="classpath:myBatis-config.xml"/></bean>--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="configLocation" value="classpath:myBatis-config.xml"/><property name="dataSource" ref="dataSource"/></bean><!-- ibatis2.x 配置<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"><property name="configLocation" value="classpath:myBatis-config.xml"/><property name="dataSource" ref="dataSource"/></bean>--><bean id="mapDao" class="org.mybatis.spring.MapperFactoryBean"><!-- 这里是接口,不是接口实现类了--><property name="mapperInterface" value="com.ssm.iface.IUserDao"/><property name="sqlSessionFactory" ref="sqlSessionFactory"/></bean><bean id="userServices" class="erServiceImpl"><property name="serviceUserDao" ref="mapDao"/></bean><bean id="LoginAction" class="com.ssm.action.LoginAction"><property name="userServices" ref="userServices"/></bean></beans>数据库连接属性配置文件(其实可以不用这么复杂)database.Propertiesjdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/ddtest?characterEncoding=utf8 ername=rootjdbc.password=123cpool.checkoutTimeout=5000cpool.minPoolSize=20cpool.maxPoolSize=50cpool.maxIdleTime=7200cpool.maxIdleTimeExcessConnections=1800cpool.acquireIncrement=10log4j 随便到log4j里copy一个吧mybatis-config.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC"-////DTD Config 3.0//EN""/dtd/mybatis-3-config.dtd"><configuration><typeAliases><typeAlias alias="User" type="er"/></typeAliases><mappers><mapper resource="com/ssm/sqlmap/User.xml" /></mappers></configuration>struts配置文件struts.Properties##整合spring的struts.objectFactory=springeClassCache = truestruts.locale=zh_CNstruts.i18n.encoding=GBKstruts的Action配置文件struts.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><package name="style" extends="struts-default"><!--<action name="loginAction" class="sys.style.design.action.LoginAction"> <result name="success">success.jsp</result><result name="error">error.jsp</result></action>--><action name="loginAction" class="com.ssm.action.LoginAction"><result name="success">success.jsp</result><result name="error">error.jsp</result></action></package></struts>。

Strutsibatis+spring项目整合档示例

Strutsibatis+spring项目整合档示例

S t r u t s2+i b a t i s+s p r i n g整合开发1.工程结构图2.配置文件<?xml version="" encoding="UTF-8"?><web-app version=""xmlns=xmlns:xsi=xsi:schemaLocation=><welcome-file-list><welcome-file></welcome-file></welcome-file-list><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/</param-value></context-param><listener><listener-class></listener-class></listener><filter><filter-name>struts2</filter-name><filter-class></filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>如图:<?xml version="" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-etUserById(id));}}public String execute()throws Exception{if(getUserService().isLogin(user)){return SUCCESS;}return INPUT;}public String save()throws Exception{if(getUserService().insertUser(user)){return SUCCESS;}return ERROR;}public String edit(){return SUCCESS;}public String update()throws Exception{ if(getUserService().updateUser(user)){ return SUCCESS;}return ERROR;}public String delete()throws Exception{ if(getUserService().deleteUser(id))){ return SUCCESS;}return ERROR;}public String findAllUser()throws Exception{ try {list=getUserService().getAllUser();} catch (Exception e) {}return SUCCESS;}public String getId() {return id;}public void setId(String id) {= id;}public int getPageIndex() {return pageIndex;}public void setPageIndex(int pageIndex) { = pageIndex;}public String getPageBar() {return pageBar;}public void setPageBar(String pageBar) { = pageBar;}public List<User> getList() {return list;}public void setList(List<User> list) {= list;}public User getUser() {return user;}public void setUser(User user) {= user;}public void setUserService(IUserService userService) { = userService;}public IUserService getUserService() {return userService;}public User getModel() {" pageEncoding="utf-8"%><%@taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP '' starting page</title></head><body><s:form action="save" method="post"><s:textfield label="username" name="username"/><s:password label="password" name="password"/><s:submit value="save"/></s:form></body></html>如图:<%@ page language="java" import=".*" pageEncoding="utf-8"%><%@taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP '' starting page</title></head><body>This is my JSP page. <br></body></html>如图:<%@ page language="java" import=".*" pageEncoding="utf-8"%><%@taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP '' starting page</title></head><body><s:form action="show" method="post"><table width="50%" align="center"><tr><td align="center">userid</td><td align="center">username</td><td align="center">password</td></tr><s:iterator value="list" id="user" status="st"><tr><td align="center"><s:property value="id"/></td><td align="center"><s:property value="username"/></td><td align="center"><s:property value="password"/></td><td align="center"><s:url id="update" action="edit"><s:param name="id"><s:property value="id"/></s:param></s:url><s:a href="%{update}">update</s:a></td><td align="center"><s:url id="delete" action="delete"><s:param name="id"><s:property value="id" /></s:param></s:url><s:a href="%{delete}">delete</s:a></td></tr></s:iterator><tr><td colspan="4"><s:property value="#" escape="false"/></td></tr></table></s:form></body></html><%@ page language="java" import=".*" pageEncoding="utf-8"%><%@taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP '' starting page</title></head><body><s:form action="login" method="post"><s:textfield label="username" name="username"/><s:password label="password" name="password"/><s:submit value="submit"/></s:form></body></html>如图:<%@ page language="java" import=".*" pageEncoding="utf-8"%><%@taglib prefix="s" uri="/struts-tags" %><html><head><title>success</title></head><body><a href="">显示用户列表</a></br><a href="">添加用户</a></body></html>如图:<%@ page language="java" import=".*" pageEncoding="utf-8"%><%@taglib prefix="s" uri="/struts-tags" %><html><head><title></title></head><body><s:form action="update" method="post"><s:textfield name="id" label="ID" value="%{id}" readonly="true"/><s:textfield name="username" label="UserName" value="%{username}" required="true"/> <s:textfield name="password" label="Password" value="%{password}" required="true"/> <s:submit value="update"/></s:form></body></html>3.jar包4.表userCREATE TABLE `user` (`id` int(11) NOT NULL auto_increment, `username` varchar(20) NOT NULL default '', `password` varchar(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk。

Ibatis+spring整合集成开发【原创】

Ibatis+spring整合集成开发【原创】

<parameterproperty="groupID"jdbcType="INTEGER"javaType="ng .Integer"mode="OUT"/> <parameterproperty="group_desc"jdbcType="VARCHAR"javaType="java.l ang.String"mode="OUT"/> <parameterproperty="selectLevel"jdbcType="VARCHAR"javaType="java. lang.String"mode="OUT"/> <parameterproperty="updateLevel"jdbcType="VARCHAR"javaType="java. lang.String"mode="OUT"/> <parameterproperty="addLelvel"jdbcType="VARCHAR"javaType=" ng.String"mode="OUT"/> <parameterproperty="delelteLevel"jdbcType="VARCHAR"javaType="java .lang.String"mode="OUT"/> <parameterproperty="Account_id"jdbcType="INTEGER"javaType="java.l ang.Integer"mode="OUT"/> <parameterproperty="Grade"jdbcType="INTEGER"javaType="ng.I nteger"mode="OUT"/> <parameterproperty="account"jdbcType="VARCHAR"javaType="ng .String"mode="OUT"/> <parameterproperty="Name"jdbcType="VARCHAR"javaType="ng.St ring"mode="OUT"/> <parameterproperty="Mobile"jdbcType="VARCHAR"javaType="ng. String"mode="OUT"/> <parameterproperty="Result"jdbcType="INTEGER"javaType="ng. Integer"mode="OUT"/> </parameterMap> <procedureid="login_user"parameterMap="login_pro"> <![CDATA[{ call procedure_ecsystem_login(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) }]]> </procedure> </sqlMap>

struts2与Spring集成步骤

struts2与Spring集成步骤

1、创建web project SS22、导入spring框架,core包、webLibraries包3、导入struts2框架,core包导入还需要导入struts2-spring-plugin包注意:可以通过右键选择configure build path,选择Add Library MyEclipse libraries,添加所需要的包4、编写erAction5、配置struts.xml<package name="default"namespace="/"extends="struts-default"> <action name="User"class="UserAction"><result name="success">success.jsp</result></action></package>6、配置web.xml<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value> </context-param><listener><listener-class>org.springframework.web.context.ContextLoaderL istener</listener-class></listener><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecut eFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>注意:a、指明applicationContext.xml的位置b、编写spring的Listenerc、struts2的配置信息保持不变7、配置applicationContext.xml<bean id="UserAction" class="erAction" scope="prototype"></bean>注意:id需要和Struts.xml中对应Action配置节点中的class属性(此时的class属性与action 类名无关)保持一致,scope设置为prototype。

struts+spring+ibatis框架集成

Spring2.5、Struts2、Ibatis开发框架搭建(一)一、框架下载1.1 Struts2框架Struts2框架发展于WebWork,现在捐献给了Apache开源组织,最新版本的Struts2框架可以从位于Apache官方网站的Struts2项目中获取,Struts2框架的项目主页地址为:/ ,下载页面地址为: /download.cgi,打开下载地址以后自己选择最新发布的版本即可,新手的话下载Full Distribution的版本,例如/download.cgi#struts2014中的struts-2.0.14-full.zip。

为了让struts2能够支持json格式的返回数据,还需要下载json插件,下载地址为/p/jsonplugin/,下载文件为jsonplugin-0.31.jar 文件。

1.2 Spring2.5 框架Spring框架的官方网站地址:/,下载页面为:/download ,打开下载页面以后选择Get the latest Spring releases here中的发行包去下载使用,注意Spring官方网站中包含的框架有很多,包括流程处理、安全、Web服务等很多种框架,我们需要下载的框架是Spring FrameWork 的某个版本,不是其它的那些框架。

1.3 Ibatis框架iBATIS框架的主页是/,在打开的网站界面中选择选择左边的Get software中的for java连接,在打开的界面中选择下载连接。

1.4 其它(数据库缓冲池框架等)如果需要使用Ms Sql Server数据库的话,还需要在项目中加入jtds的JDBC驱动程序,下载地址/,找到download连接,按提示信息下载即可。

下载DBCP数据库缓冲池框架,下载地址为/dbcp/,下载最新版本即可,因为DBCP框架是apache开源软件组织的众多框架中的一部分,要让DBCP工作的话,还需要common-pool框架,自行到apache官方网站下载。

Struts+Spring+Ibatis整合框架搭建配置文档

Struts + Spring +ibatis 整合开发步骤:框架配置-ActionContextCleanUp<!—过滤器,struts2用于销毁某些不再使用的对象等!--》<filter><filter-name>struts-cleanup</filter-name><filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class></filter><!-- 要保证在struts2核心过滤器映射之前配置这一项--> <filter-mapping><filter-name>struts-cleanup</filter-name><url-pattern>/*</url-pattern></filter-mapping>框架配置-FilterDispatcher<!-- 配置Struts 2框架的核心Filter --><filter><!-- 配置Struts 2核心Filter的名字--><filter-name>struts</filter-name><!-- 配置Struts 2核心Filter的实现类--><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><!-- 配置Filter拦截的URL --> <filter-mapping><!-- 配置Struts 2的核心FilterDispatcher拦截所有用户请求--> <filter-name>struts</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 向监听器类中传递初始化参数,以获取beanFactory对象--> <context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!-- 使用监听器初始化Spring的beanFactory,并将其放入到Context中,在使用时将其取出,以获取IOC容器中的bean --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>框架配置-Ibatis<!--===IBATIS属性配置===--><bean id="SqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"><property name="configLocation" value="classpath:sqlMapConfig.xml"/> <property name="dataSource" ref="DataSource"/></bean>一.添加Spring 、Struts框架对web.xml文件的修改1.添加Spring框架2.在web.xml中引入Spring配置文件(注意:applicationContext.xml文件的路径)<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/conf/applicationContext.xml</param-value></context-param><servlet><servlet-name>context</servlet-name><servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class><load-on-startup>1</load-on-startup></servlet>3.添加Struts框架4.在web.xml中引入Spring配置文件(注意:struts-config.xml文件的路径)<servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/conf/struts-config.xml</param-value></init-param><init-param><param-name>debug</param-name><param-value>3</param-value></init-param><init-param><param-name>detail</param-name><param-value>3</param-value></init-param><load-on-startup>0</load-on-startup></servlet><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>5.web.xml自动添加的*.jsp文件起始路径(注意:jsp文件的访问路径)<welcome-file-list><welcome-file>/WEB-INF/jsp/emp.jsp</welcome-file></welcome-file-list>二、对Spring配置文件applicationContext.xml文件的修改1.配置JDBC数据源驱动文件jdbc.properties(服务器、端口、账户、密码因具体情况而定)MySql:jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/testername=rootjdbc.password=adminOracle:jdbc.driver=oracle.jdbc.driver.OracleDriverjdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:orclername=scottjdbc.password=tigerMS Sql Server:jdbc.driver=com.microsoft.jdbc.sqlserver.SQLServerDriverjdbc.url=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mssqlername=sajdbc.password=sa2.将JDBC驱动源文件部署到ApplicationContext.xml配置文件中<bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"><list><value>/WEB-INF/conf/jdbc.properties</value></list></property></bean>3.将Data Source配置到ApplicationContext文件中<bean id="dataSource" class="mons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName"><value>${jdbc.driver}</value></property><property name="url"><value>${jdbc.url}</value></property><property name="username"><value>${ername}</value></property><property name="password"><value>${jdbc.password}</value></property><property name="minIdle"><value>1</value></property><property name="maxActive"><value>25</value></property><property name="maxIdle"><value>5</value></property></bean>4.在Spring配置中注入3中的datasource数据源<bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource"><ref local="dataSource"/></property></bean>5.引入具体的sql语句配置文件(注意:sqlMapConfig.xml文件的路径)<bean id="sqlMapClient"c lass="org.springframework.orm.ibatis.SqlMapClientFactoryBean"><property name="configLocation"><value>/WEB-INF/conf/sqlMapConfig.xml</value></property><property name="dataSource"><ref local="dataSource"/></property></bean>6.注入操作数据库的dao(empDao是举例)<bean id="empDao" class="com.web.ssi.emp.dao.EmpDaoImpl"><property name="sqlMapClient"><ref local="sqlMapClient"/></property></bean>三.对Struts配置文件struts-config.xml文件的修改1.填写form-bean<form-beans><form-bean name="empForm" type="com.web.ssi.emp.form.EmpForm"/></form-beans>2.填写action-mapping<action-mappings><actionname="empForm"path="/queryEmp"type="org.springframework.web.struts.DelegatingActionProxy"scope="request" ><forward name="queryEmp" path="/jsp/emp.jsp"/></action></action-mappings>3.填写message-resource 和plug-in(注意:action-servlet.xml文件路径)<message-resources parameter="com.web.ssi.ApplicationResources"/><plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-propertyproperty="contextConfigLocation"value="/conf/applicationContext.xml" /> </plug-in>4.Spring与Struts相对用的配置applicationContext.xml<beans><bean name="/queryEmp" class="com.web.ssi.emp.action.EmpAction" singleton="false"> <property name="empService"><ref bean="empService" /></property></bean></beans>附一:配置文件示意图如下附二:包结构建这么一个工程是我做毕业设计的前奏,我打算用myeclipse把毕业设计做一下。

人事管理

Struts2+Spring+Ibatis整合的简单人事管理系统作者:李红首先,用MyEclipse 新建一个web project(包com.bjnt.ibatis.map(存放ibatis配置文件) com.bjnt.ibatis.domian(存放实体类) com.bjnt.)一.Ibatis先是Ibatis的配置:1.把ibatis-2.3.4.726.jar复制到项目的WEB-INFO/lib下刷新eclipse2.建立ibatis的包,在此我创建了com.bjnt.ibatis.map包(存放ibatis配置文件).3.建立包com.bjnt.ibatis.domain 并建立PO类TDept.java 和TEmployee.java:Java代码public class TDept {private Integer IDeptId; //部门IDprivate String vcDeptCode; //部门编号private String vcDeptName; //部门名称private String vcDeptAddress; //部门地址private String vcDeptTelphone; //部门电话private String vcDeptDesc; //部门简介private List<TEmployee> employees; //部门所属员工}public class TEmployee{private Integer IEmpId;private String vcEmpName;}4.在com.bjnt.ibatis.map包中新建一个dept.xml 和employee.xml(这里省略)内容如下:dept.xml文件Xml代码<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap PUBLIC "-////DTD SQL Map 2.0//EN""/dtd/sql-map-2.dtd"><sqlMap namespace="deptEntity"><typeAlias alias="employee"type="com.bjnt.ibatis.domain.TEmployee" /><typeAlias alias="dept" type="com.bjnt.ibatis.domain.TDept" /><resultMap id="get-dept-result" class="dept"><result property="IDeptId" column="DEPTID" jdbcType="int" javaType="ng.Integer" /><result property="vcDeptCode" column="DEPTCODE" jdbcType="VARCHAR(30)" javaType="ng.String" /><result property="vcDeptName" column="DEPTNAME" jdbcType="VARCHAR(10)" javaType="ng.String" /><result property="vcDeptAddress" column="ADDRESS" jdbcType="VARCHAR(50)" javaType="ng.String" /><result property="vcDeptTelphone" column="TELPHONE" jdbcType="VARCHAR(20)" javaType="ng.String" /><result property="vcDeptDesc" column="DESC" jdbcType="VARCHAR(255)" javaType="ng.String" /><result property="employees" column="DEPTID" select="findEmpByDeptId" /></resultMap><parameterMap id="insert-dept-full-paramter" class="dept" ><parameter property="IDeptId" jdbcType="int"/><parameter property="vcDeptCode" jdbcType="VARCHAR(30)"/><parameter property="vcDeptName" jdbcType="VARCHAR(10)"/><parameter property="vcDeptAddress" jdbcType="VARCHAR(50)"/><parameter property="vcDeptTelphone" jdbcType="VARCHAR(20)"/><parameter property="vcDeptDesc" jdbcType="VARCHAR(255)"/> </parameterMap><select id="findDeptById" parameterClass="int" resultMap="get-dept-result"> select *from T_DEPT as dept<dynamic prepend="WHERE"><isNotEmpty property="value">dept.DEPTID= #value#</isNotEmpty> </dynamic></select><select id="findEmpByDeptId" parameterClass="int"resultClass="employee"><![CDATA[select emp.EMPID as IEmpId,emp.EMPNAME as vcEmpName,emp.GENDER as IEmpGender,emp.AGEas IEmpAge ,emp.IDCARD as vcEmpIdCard,emp.PARTY as vcEmpParty,emp.SCHOOLas vcEmpSchool,emp.MAJOR as vcEmpMajor,emp.TITLE as vcEmpTitle,emp.POST as vcEmpPostfrom T_EMPLOYEE as empwhere emp.DEPTID= #value#]]></select><select id="findDeptByName" parameterClass="ng.String"resultMap="get-dept-result">select *from T_DEPT as dept<dynamic prepend="WHERE"><isNotEmpty property="value">dept.DEPTNAME= #value#</isNotEmpty> </dynamic></select><select id="findDeptByDeptCode" parameterClass="ng.String"resultMap="get-dept-result">select *from T_DEPT as dept<dynamic prepend="WHERE"><isNotEmpty property="value">dept.DEPTCODE= #value#</isNotEmpty> </dynamic></select><insert id="insertDept" parameterMap="insert-dept-full-paramter">insert into T_DEPT (DEPTID,DEPTCODE,DEPTNAME,ADDRESS,TELPHONE,`DESC`) values(?,?,?,?,?,?)</insert></sqlMap>5.创建com.bjnt.ibatis.dao 并创建数据库dao接口TDeptDao.java:Java代码public interface TDeptDao {/*** 查找所有的部门* @return*/public List<TDept> findAllDept();/*** 根据部门Id 查找特定部门* @param deptId* @return*/public TDept findDeptById(Integer deptId);/*** 根据部门名称查找特定部门* @param deptName* @return*/public TDept findDeptByName(String deptName);/*** 根据部门编号查找特定部门* @param deptCode* @return*/public TDept findDeptByCode(String deptCode);/*** 新插入一个部门* @param dept* @return*/public Integer insertDept(TDept dept);}6.在com.bjnt.ibatis.dao.impl 实现这个接口,TDeptDaoImpl.java:Java代码public class TDeptDaoImpl extends SqlMapClientDaoSupport implements TDeptDao { @SuppressWarnings("unchecked")@Overridepublic List<TDept> findAllDept() {return (List<TDept>)getSqlMapClientTemplate().queryForList("findDeptById");}@Overridepublic TDept findDeptById(Integer deptId) throws DataAccessException { return(TDept)getSqlMapClientTemplate().queryForObject("findDeptById",deptId);}@Overridepublic Integer insertDept(TDept dept) {return (Integer)getSqlMapClientTemplate().insert("insertDept", dept);}@Overridepublic TDept findDeptByName(String deptName) {return(TDept)getSqlMapClientTemplate().queryForObject("findDeptByName",deptName);}@Overridepublic TDept findDeptByCode(String deptCode) {return(TDept)getSqlMapClientTemplate().queryForObject("findDeptByDeptCode",deptCode);}}7.在项目的WEB-INF 下新建配置文件SqlMapConfig.xml:Xml代码<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapConfig PUBLIC "-////DTD SQL Map Config 2.0//EN""/dtd/sql-map-config-2.dtd"><sqlMapConfig><settings cacheModelsEnabled="true" enhancementEnabled="true"lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /> <sqlMap resource="com/bjnt/ibatis/map/employee.xml"/><sqlMap resource="com/bjnt/ibatis/map/dept.xml"/></sqlMapConfig>到此,Ibatis配置的差不多了.二.配置Spring:1.拷入commons-collections-3.2.jar commons-dbcp-1.2.2.jar commons-logging-1.0.4.jar commons-pool-1.4.jar log4j-1.2.14.jar retrotranslator-runtime-1.2.0.jar retrotranslator-transformer-1.2.0.jar spring.jar 到WEB-INF/lib2.在WEB-INF目录下建立配置文档jdbc.properties :Java代码jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/bjnt_database?characterEncoding=UTF-8ername=rootjdbc.password=root3.在WEB-INF目录下建立配置文档applicationContext.xml(Spring的配置文件) :(待修改~~~)Xml代码<?xml version="1.0" encoding="UTF-8"?><beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.0.xsd/schema/aop/schema/aop/spring-aop-2.5.xsd/schema/tx/schema/tx/spring-tx-2.5.xsd"><!--以下四个文件中的内容可以直接写在applicationContext.xml本文件中--><import resource="dataAccessContext.xml"/><import resource="SqlMapDaoConfig.xml"/><import resource="serviceContext.xml"/><import resource="Struts2ActionConfig.xml"/><!--以上四个文件中的内容可以直接写在applicationContext.xml本文件中--><bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"><list><value>WEB-INF\\jdbc.properties</value></list></property></bean><!--以下代码是使用AOP方式对事务的管理--><!--<aop:config><aop:advisor pointcut="execution(* com.bjnt.struts.action.*.*(..))" advice-ref="txAdvice"/></aop:config><tx:advice id="txAdvice"><tx:attributes><tx:method name="execute*"/><tx:method name="insert*"/><tx:method name="update*"/><tx:method name="*" read-only="true"/></tx:attributes></tx:advice>--><!-- ===================实现外观类对业务逻辑组件的注入======================= --><bean id="hrmsFacade" parent="baseTransactionProxy"><property name="target"><bean class="com.dbke.hrms.spring.logic.HRMSFacadeImpl"><property name="deptService" ref="deptService"/></bean></property></bean></beans>4. 在WEB-INF目录下建立配置文档dataAccessContext.xmlXml代码<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "/dtd/spring-beans-2.0.dtd"><beans><!-- spring 的事务处理代理配置--><bean id="baseTransactionProxy"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"lazy-init="true" abstract="true"><!-- 它有个属性叫“事务经理”,下面会声明的--><property name="transactionManager"><ref bean="transactionManager" /></property><!--这里就声明了具体的事务--><property name="transactionAttributes"><props><prop key="insert*">PROPAGATION_REQUIRED</prop><prop key="save*">PROPAGATION_REQUIRED</prop><prop key="update*">PROPAGATION_REQUIRED</prop><prop key="del*">PROPAGATION_REQUIRED</prop><prop key="modify*">PROPAGATION_REQUIRED</prop><prop key="*">PROPAGATION_REQUIRED,readOnly</prop></props></property></bean><!-- spring 的数据源的配置--><bean id="dataSource" class="mons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="${jdbc.driverClassName}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${ername}"/><property name="password" value="${jdbc.password}"/></bean><!-- spring 的事务处理类配置--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/></bean><!-- spring的ibatis 配制--><bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"><property name="configLocation" value="WEB-INF/SqlMapConfig.xml"/><property name="dataSource" ref="dataSource"/></bean></beans>5.在WEB-INF目录下创建配置文档SqlMapDaoConfig.xml :Xml代码<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "/dtd/spring-beans-2.0.dtd"><beans><!-- =====================下面是IBATIS的DAO的配置============================= --><bean id="employeeDao" class="com.bjnt.ibatis.dao.impl.TEmployeeDaoImpl"> <property name="sqlMapClient" ref="sqlMapClient"/></bean><bean id="deptDao" class="com.bjnt.ibatis.dao.impl.TDeptDaoImpl"><property name="sqlMapClient" ref="sqlMapClient"/></bean></beans>6.在WEB-INF目录下创建配置文档serviceContext.xml:Java代码<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "/dtd/spring-beans-2.0.dtd"><beans><!-- =========以下是对系统业务逻辑层的注入========================= --><bean id="deptService" class="com.bjnt.struts.service.impl.DeptServiceImpl"> <property name="deptDao" ref="deptDao"/></bean></beans>7.在com.bjnt.spring.logic 包下建立外观接口DeptFacade.java :Java代码public interface DeptFacade {/*** 显示所有的部门* @return*/public List<TDept> findAllDept();/*** 根据部门Id查看部门* @param deptId* @return*/public TDept findDeptById(Integer deptId);/*** 增加一个部门* @param dept 部门对象* @return*/public Integer insertOneDept(TDept dept);/*** 增加一个部门* @param vcDeptCode* @param vcDeptName* @param vcDeptAddress* @param vcDeptTelphone* @param vcDeptDesc* @return*/public Integer insertOneDept(String vcDeptCode,String vcDeptName,String vcDeptAddress,String vcDeptTelphone,String vcDeptDesc);/*** 一次增加若干部门* @param deptList* @return*/public Integer insertDepts(List<TDept> deptList);/*** 验证部门名称是否有效* @param deptName* @return true为有效可用,false为无效*/public boolean validateDeptName(String deptName);/*** 验证部门编号是否有效* @param deptCode* @return true为有效可用,false为无效*/public boolean validateDeptCode(String deptCode);}8.在com.bjnt.spring.logic 实现外观接口DeptFacadeImpl.java:Java代码public class DeptFacadeImpl implements DeptFacade{private DeptService deptService;public void setDeptService(DeptService deptService) {this.deptService = deptService;}@Overridepublic Integer insertDepts(List<TDept> deptList) {return this.deptService.insertDepts(deptList);}@Overridepublic Integer insertOneDept(String vcDeptCode, String vcDeptName,String vcDeptAddress, String vcDeptTelphone, String vcDeptDesc) { return this.deptService.insertOneDept(vcDeptCode, vcDeptName, vcDeptAddress, vcDeptTelphone, vcDeptDesc);}@Overridepublic Integer insertOneDept(TDept dept) {return this.deptService.insertOneDept(dept);}@Overridepublic List<TDept> findAllDept() {return this.deptService.findAllDept();}@Overridepublic TDept findDeptById(Integer deptId) {return this.deptService.findDeptById(deptId);}@Overridepublic boolean validateDeptCode(String deptCode) {return this.deptService.validateDeptCode(deptCode);}@Overridepublic boolean validateDeptName(String deptName) {return this.deptService.validateDeptName(deptName);}}到此,spring就暂时结束了.接下来配置struts2三.struts2:1.导入backport-util-concurrent-3.0.jar freemarker-2.3.12.jar struts2-core-2.0.12.jar struts2-spring-plugin-2.0.12.jar xwork-2.0.6.jar 到WEB-INF/lib2.修改WEB-INF/下的web.xml文件:Xml代码<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter><!-- FilterDispatcher 用来初始化strtus2 并且处理所有的web 请求--><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class ></listener><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>3.在src目录下建立配置文件struts.properties:Java代码struts.devMode = truestruts.enable.DynamicMethodInvocation = falsestruts.objectTypeDeterminer = notigerstruts.objectFactory = spring4.在src目录下建立配置文件struts.xml :Xml代码<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><constant name="struts.objectTypeDeterminer" value="notiger" /><constant name="struts.objectFactory" value="spring" /><constant name="struts.objectFactory.spring.autoWire" value="name" /><include file="struts-default.xml"/><!-- struts2的Action配置--><package name="hrms" extends="struts-default"><action name="showEmployee" class="showEmployeeClass"> <result name="success">/index.jsp</result></action><action name="showDept" class="showDeptClass"><result name="success">/index.jsp</result><result name="error">/error.jsp</result></action><!-- Add your actions here --></package></struts>5.在com.bjnt.struts.service 编写业务逻辑组件的接口DeptService.java Java代码public interface DeptService {/*** 显示所有的部门* @return*/public List<TDept> findAllDept();/*** 根据部门Id查看部门* @param deptId* @return*/public TDept findDeptById(Integer deptId);/*** 增加一个部门* @param dept 部门对象* @return*/public Integer insertOneDept(TDept dept);/*** 增加一个部门* @param vcDeptCode* @param vcDeptName* @param vcDeptAddress* @param vcDeptTelphone* @param vcDeptDesc* @return*/public Integer insertOneDept(String vcDeptCode,String vcDeptName,String vcDeptAddress,String vcDeptTelphone,String vcDeptDesc);/*** 一次增加若干部门* @param deptList* @return*/public Integer insertDepts(List<TDept> deptList);/*** 验证部门名称是否有效* @param deptName* @return true为有效可用,false为无效*/public boolean validateDeptName(String deptName);/*** 验证部门编号是否有效* @param deptCode* @return true为有效可用,false为无效*/public boolean validateDeptCode(String deptCode);}6.在com.bjnt.struts.service.impl 编写业务逻辑组件的实现DeptServiceImpl.javaJava代码public class DeptServiceImpl implements DeptService {/*spring注入的dao*/private TDeptDao deptDao;public void setDeptDao(TDeptDao deptDao) {this.deptDao = deptDao;}@Overridepublic Integer insertDepts(List<TDept> deptList) {for (TDept dept : deptList) {this.insertOneDept(dept);}}@Overridepublic Integer insertOneDept(TDept dept) {if (!this.validateDeptName(dept.getVcDeptName())) {throw new RuntimeException("部门名称重复");}if (!this.validateDeptCode(dept.getVcDeptCode())) {throw new RuntimeException("部门编号名称重复");}return deptDao.insertDept(dept);}@Overridepublic Integer insertOneDept(String vcDeptCode, String vcDeptName, String vcDeptAddress, String vcDeptTelphone, String vcDeptDesc) { TDept dept=new TDept();dept.setVcDeptAddress(vcDeptAddress);dept.setVcDeptCode(vcDeptCode);dept.setVcDeptDesc(vcDeptDesc);dept.setVcDeptName(vcDeptName);dept.setVcDeptTelphone(vcDeptTelphone);return this.insertOneDept(dept);}@Overridepublic List<TDept> findAllDept() {return deptDao.findAllDept();}@Overridepublic TDept findDeptById(Integer deptId) {return deptDao.findDeptById(deptId);}@Overridepublic boolean validateDeptName(String deptName) {if (deptDao.findDeptByName(deptName)==null) {return true;return false;}}@Overridepublic boolean validateDeptCode(String deptCode) {if (deptDao.findDeptByCode(deptCode)==null) {/*验证部门编号长度是否是3的整数倍*/if (deptCode.length()%3!=0) {return false;}return true;}else {return false;}}}7.在com.bjnt.struts.action 编写action类ShowDeptAction.java: Java代码public class ShowDeptAction implements Action{private DeptFacade deptFacade;public void setDeptFacade(DeptFacade deptFacade) {this.deptFacade = deptFacade;}/*Struts2的输入参数值*/private int di; //deptIDpublic int getDi() {return di;}public void setDi(int di) {this.di = di;}/*Struts2的返回值*/private TDept dept;public TDept getDept() {return dept;}public void setDept(TDept dept) {this.dept = dept;}@Overridepublic String execute() throws Exception {dept=deptFacade.findDeptById(di);TDept dept1=new TDept();dept1.setVcDeptName("重庆分公司");dept1.setVcDeptCode("001002");dept1.setVcDeptAddress("重庆");// hrmsFacade.addOneDept(dept1);TDept dept2=new TDept();dept2.setVcDeptName("广州分公司");dept2.setVcDeptCode("001003");dept2.setVcDeptAddress("广州");List<TDept> deptList=new ArrayList<TDept>();deptList.add(dept2);deptList.add(dept1);try {deptFacade.insertDepts(deptList);} catch (RuntimeException e) {e.printStackTrace();return ERROR;}return SUCCESS;}}8.在WEB-INF 下编写配置文件Struts2ActionConfig.xml:Xml代码<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "/dtd/spring-beans-2.0.dtd"><beans><!-- Struts2 action类--><bean id="showEmployeeClass" class="com.bjnt.struts.action.ShowEmployeeAction" ><property name="hrmsFacade" ref="hrmsFacade" /></bean><bean id="showDeptClass" class="com.bjnt.struts.action.ShowDeptAction" > <property name="hrmsFacade" ref="hrmsFacade" /></bean></beans>到此,struts2配置就完成了.写jsp进行测试。

Strutsibatissring项目整合档示例

Struts2+ibatis+spring整合开发1.工程结构图2.配置文件<xml version="" encoding="UTF-8"><web-app version=""xmlns=""xmlns:xsi=""xsi:schemaLocation=""><welcome-file-list><welcome-file></welcome-file></welcome-file-list><context-param><param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/</param-value> </context-param><listener><listener-class></listener><filter><filter-name>struts2</filter-name><filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/</url-pattern></filter-mapping></web-app>如图:<xml version="" encoding="UTF-8"><DOCTYPE struts PUBLIC"-etUserByIdid;}}public String executethrows Exception{ ifgetUserService.isLoginuser{return SUCCESS;}return INPUT;}public String savethrows Exception{ifgetUserService.insertUseruser{return SUCCESS;}return ERROR;}public String edit{return SUCCESS;}public String updatethrows Exception{ ifgetUserService.updateUseruser{return SUCCESS;}return ERROR;}public String deletethrows Exception{ ifgetUserService.deleteUserid{return SUCCESS;}return ERROR;}public String findAllUserthrows Exception{try {list=getUserService.getAllUser;} catch Exception e {}return SUCCESS;}public String getId {return id;}public void setIdString id {= id;}public int getPageIndex {return pageIndex;}public void setPageIndexint pageIndex { = pageIndex;}public String getPageBar {return pageBar;}public void setPageBarString pageBar { = pageBar;}public List<User> getList {return list;}public void setListList<User> list { = list;}public User getUser {return user;}public void setUserUser user {= user;}public void setUserServiceIUserService userService { = userService;}public IUserService getUserService {return userService;}public User getModel {" pageEncoding="utf-8"%> <%taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP '' starting page</title></head><body><s:form action="save" method="post"><s:textfield label="username" name="username"/><s:password label="password" name="password"/><s:submit value="save"/></s:form></body></html>如图:<% page language="java" import="." pageEncoding="utf-8"%> <%taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP '' starting page</title></head><body>This is my JSP page. <br></body></html>如图:<% page language="java" import="." pageEncoding="utf-8"%><%taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP '' starting page</title></head><body><s:form action="show" method="post"><table width="50%" align="center"><tr><td align="center">userid</td><td align="center">username</td><td align="center">password</td></tr><s:iterator value="list" id="user" status="st"><tr><td align="center"><s:property value="id"/></td><td align="center"><s:property value="username"/></td><td align="center"><s:property value="password"/></td><td align="center"><s:url id="update" action="edit"><s:param name="id"><s:property value="id"/></s:param></s:url><s:a href="%{update}">update</s:a></td><td align="center"><s:url id="delete" action="delete"><s:param name="id"><s:property value="id" /></s:param></s:url><s:a href="%{delete}">delete</s:a></td></tr></s:iterator><tr><td colspan="4"><s:property value="" escape="false"/></td></tr></table></s:form></body></html>如图:<% page language="java" import="." pageEncoding="utf-8"%> <%taglib prefix="s" uri="/struts-tags" %><html><head><title>My JSP '' starting page</title></head><body><s:form action="login" method="post"><s:textfield label="username" name="username"/><s:password label="password" name="password"/><s:submit value="submit"/></s:form></body></html>如图:<% page language="java" import="." pageEncoding="utf-8"%> <%taglib prefix="s" uri="/struts-tags" %><html><head><title>success</title></head><body><a href="">显示用户列表</a></br><a href="">添加用户</a></body></html>如图:<% page language="java" import="." pageEncoding="utf-8"%><%taglib prefix="s" uri="/struts-tags" %><html><head><title></title></head><body><s:form action="update" method="post"><s:textfield name="id" label="ID" value="%{id}" readonly="true"/> <s:textfield name="username" label="UserName" value="%{username}" required="true"/><s:textfield name="password" label="Password" value="%{password}" required="true"/><s:submit value="update"/></s:form></body></html>如图:3.jar包4.表userCREATE TABLE `user``id` int11 NOT NULL auto_increment, `username` varchar20 NOT NULL default '', `password` varchar11 NOT NULL, PRIMARY KEY `id` ENGINE=InnoDB DEFAULT CHARSET=gbk。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档