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

工程文件目录结构如下图:


struts2 整合 Spring开发,简单数据添加小例子

实体 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的项目开发。