struts2 整合 Spring开发,简单数据添加小例子
第一步:
打开MyEclipse 新建一个web工程。
然后导入相应的jar包:将struts2开发的几个基础jar包导入到 lib下,因为是整合了spring开发,所以还应将struts2里的 struts2-spring-plugin.jar 也放入到 lib下。然后通过myeclipse导入spring。具体的办法是在相应的工程目录右击,Myeclipse -->Add Spring Capabilities.然后在对话框里面.Spring 2.0 Core 打钩(这个默认已经打钩了),还有Spring 2.0 Web 打钩,因为我们需要用到里面的一个Listener.后面直接默认,所以直接按 finish。
第二步: 配置web.xml.因为我们需要通过spring来生成act ion实例.(也就是说.告诉struts有spring的存在)
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">
<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>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
</web-app>
第三步:写两个页面,一个添加信息页面add.jsp,一个添加成功消息页面success.jsp
add.jsp代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
</head>
<body>
<s:form action="add">
<s:textfield name="user.USERNAME" label="用户名"></s:textfield>
<s:textfield name="user.USERPWD" label="密码"></s:textfield>
<s:s
ubmit value="提交"></s:submit>
</s:form>
</body>
</html>
success.jsp代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<html>
<head>
</head>
<body>
<b>添加成功!!</b>
</body>
</html>
第四步.写个业务处理类,实体javabean 及 dao 和 action
工程文件目录结构如下图:
实体 User.java代码如下 :
package valueBean;
public class User {
private String USERNAME;
private String USERPWD;
public String getUSERNAME() {
return USERNAME;
}
public void setUSERNAME(String username) {
USERNAME = username;
}
public String getUSERPWD() {
return USERPWD;
}
public void setUSERPWD(String userpwd) {
USERPWD = userpwd;
}
}
UserDao.java代码如下
package dao;
import org.springframework.jdbc.core.JdbcTemplate;
public class UserDao {
private JdbcTemplate jtl = null;
public JdbcTemplate getJtl() {
return jtl;
}
public void setJtl(JdbcTemplate jtl) {
this.jtl = jtl;
}
public void executeSql(String sql) {
jtl.execute(sql);
}
}
UserAction。java代码如下
package action;
import valueBean.User;
import com.opensymphony.xwork2.ActionSupport;
import dao.UserDao;
public class UserAction extends ActionSupport {
//这里引入了一个
UserDao
.但并没有将它实例化.(如果在这里实例化,那就不是整合spring了...在这我们就是靠spring来注入这个
UserDao
)
private UserDao dao;
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
//注意这里需要定义一个set方法.因为spring需要调用这个set方法
public void setDao(UserDao dao) {
this.dao = dao;
}
public String execute() throws Exception {
String sql = "insert into userbase values('" + user.getUSERNAME()
+ "','" + user.getUSERPWD() + "')";
dao.executeSql(sql);
return SUCCESS;
}
}
第五步:applicationContext.xml 它是spring的配置文件,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</property>
<property name="url">
<value>
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=user
</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value></value>
</property>
</bean>
<bean id="dao" class="dao.UserDao">
//这里定义了一个
dao
的组件.对应业务逻辑的实现类
<property name="jtl">
<ref bean="jdbcTemplate" />
</property>
</bean>
<bean id="userAction
" class="action.UserAction" scope="prototype">
<property name="dao">
<ref bean="dao" />
//将这个业务逻辑的实现类注入.(也即调用userAction里的那个 setDao()方法 )
</property>
</bean>
</beans>
第六步:配置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>
<constant name="struts.i18n.encoding" value="GBK" />
<package name="struts2" extends="struts-default">
<action name="add" class="userAction">
//注意,这里的class已经不是和以前那样的一个类的全名.而是一个自定义的名字.这个名字对应到了上面我们配置的//applicationContext.xml(也就是spring的配置文件)里定义的bean
Id .
<result name="input">/index.jsp</result>
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
至此,一个Struts2 整合spring 实现数据添加的小例子的所有代码就写完了,这是我自己写的,也经过了测试,大家可以参考,比较容易入门 struts2 整合spring的项目开发。