首先到官方网站下载struts-2.0.6,将其lib下相应的包拷贝到项目中去
我的开发环境是eclipse3.2+tomcat5.5.20+JDK1.5.06+myeclipse5.1
基本布局如附件,以下是web.xml的配置
<web-app id="WebApp_9" 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>encodingFilter</filter-name>//解决中文问题
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener//加载spring,但同时也需要在struts.properties中配置一下,见下面
</listener-class>
</listener>
</web-app>
struts.properties:
struts.objectFactory = spring//表示使用spring
在struts.xml中
<include file="struts-default.xml"/>
<package name="default" extends="struts-default">
<interceptors>
<interceptor-stack name="s2Stack">//l拦截器堆栈
<interceptor-ref name="model-driven"/>//模型驱动
<interceptor-ref name="params"/>
</interceptor-stack>
</interceptors>
<action name="login" class="login.LoginAction" method="baocun">//在action中我自己定义的方法,页可以使用默认的execute方法。
<result name="success">/success.jsp</result>//转到成功页面
<result name="input">/fail.jsp</result>
<interceptor-ref name="s2Stack"/>
</action>
</package>
在login.jsp中为
<body>
<form action="login.action" method="post">
用户名:
<input type="text" name="name" />//因为我们用了模型驱动,所以就不用如xx.name的形式了但首先的建立一个类logininfo.java,如下:
<br />
密码:
<input type="password" name="password">
<br />
<input type="submit" value="提交" name="sub" />
<input type="reset" value="重置" name="res" />
</form>
</body>
</html>
logininfo.java:
public class LoginInfo {//主要用于取得页面输入的值,一会在action中还会用到。
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
我建立了一个service,调用DAO去执行数据库操作。
package service;
import com.yourcompany.Admin;
import com.yourcompany.AdminDAO;;
public class LoginService {
private AdminDAO adminDAO;
public AdminDAO getAdminDAO() {
return adminDAO;
}
public void setAdminDAO(AdminDAO adminDAO) {
this.adminDAO = adminDAO;
}
public void saveinfo(Admin admin){
adminDAO.save(admin);
}
}
hibernate创建的DAO相信大家都会了,我就不粘贴上来了。
LoginAction如下:
import com.yourcompany.Admin;
import service.LoginService;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.yourcompany.LoginInfo;
public class LoginAction extends ActionSupport implements ModelDriven{//这里继承ActionSupport 同事实现ModelDriven
/**
*
*/
private static final long serialVersionUID = -2144138760339549940L;
LoginService loginService;
LoginInfo logininfo=new LoginInfo();
public String baocun() throws Exception{//对应与struts.xml中的method方法
Admin admin=new Admin();
System.out.println(logininfo.getName());
admin.setName(logininfo.getName());
admin.setPassword(logininfo.getPassword());
loginService.saveinfo(admin);//保存前台的数据,插入数据库
return SUCCESS;
}
public Object getModel() {
// TODO 自动生成方法存根
return logininfo;//这里就用到了logininfo.java
}
public LoginService getLoginService() {
return loginService;
}
public void setLoginService(LoginService loginService) {
this.loginService = loginService;
}
}
一个struts2+spring+hibernate的简单整合例子完成了,有不对的地方还请大家一起交流。
最后说一下官方说可以运行与JDK1.4上,本人已经测试过,可以运行,只需将j4包下的文件拷贝到lib下,就可以了,但要注意如果用JDK1.5了,不要把j4下包和用于1.5的包都拷贝到项目lib下,会冲突,本人第一次写博客,希望大家一起交流。
我的开发环境是eclipse3.2+tomcat5.5.20+JDK1.5.06+myeclipse5.1
基本布局如附件,以下是web.xml的配置
<web-app id="WebApp_9" 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>encodingFilter</filter-name>//解决中文问题
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener//加载spring,但同时也需要在struts.properties中配置一下,见下面
</listener-class>
</listener>
</web-app>
struts.properties:
struts.objectFactory = spring//表示使用spring
在struts.xml中
<include file="struts-default.xml"/>
<package name="default" extends="struts-default">
<interceptors>
<interceptor-stack name="s2Stack">//l拦截器堆栈
<interceptor-ref name="model-driven"/>//模型驱动
<interceptor-ref name="params"/>
</interceptor-stack>
</interceptors>
<action name="login" class="login.LoginAction" method="baocun">//在action中我自己定义的方法,页可以使用默认的execute方法。
<result name="success">/success.jsp</result>//转到成功页面
<result name="input">/fail.jsp</result>
<interceptor-ref name="s2Stack"/>
</action>
</package>
在login.jsp中为
<body>
<form action="login.action" method="post">
用户名:
<input type="text" name="name" />//因为我们用了模型驱动,所以就不用如xx.name的形式了但首先的建立一个类logininfo.java,如下:
<br />
密码:
<input type="password" name="password">
<br />
<input type="submit" value="提交" name="sub" />
<input type="reset" value="重置" name="res" />
</form>
</body>
</html>
logininfo.java:
public class LoginInfo {//主要用于取得页面输入的值,一会在action中还会用到。
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
我建立了一个service,调用DAO去执行数据库操作。
package service;
import com.yourcompany.Admin;
import com.yourcompany.AdminDAO;;
public class LoginService {
private AdminDAO adminDAO;
public AdminDAO getAdminDAO() {
return adminDAO;
}
public void setAdminDAO(AdminDAO adminDAO) {
this.adminDAO = adminDAO;
}
public void saveinfo(Admin admin){
adminDAO.save(admin);
}
}
hibernate创建的DAO相信大家都会了,我就不粘贴上来了。
LoginAction如下:
import com.yourcompany.Admin;
import service.LoginService;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.yourcompany.LoginInfo;
public class LoginAction extends ActionSupport implements ModelDriven{//这里继承ActionSupport 同事实现ModelDriven
/**
*
*/
private static final long serialVersionUID = -2144138760339549940L;
LoginService loginService;
LoginInfo logininfo=new LoginInfo();
public String baocun() throws Exception{//对应与struts.xml中的method方法
Admin admin=new Admin();
System.out.println(logininfo.getName());
admin.setName(logininfo.getName());
admin.setPassword(logininfo.getPassword());
loginService.saveinfo(admin);//保存前台的数据,插入数据库
return SUCCESS;
}
public Object getModel() {
// TODO 自动生成方法存根
return logininfo;//这里就用到了logininfo.java
}
public LoginService getLoginService() {
return loginService;
}
public void setLoginService(LoginService loginService) {
this.loginService = loginService;
}
}
一个struts2+spring+hibernate的简单整合例子完成了,有不对的地方还请大家一起交流。
最后说一下官方说可以运行与JDK1.4上,本人已经测试过,可以运行,只需将j4包下的文件拷贝到lib下,就可以了,但要注意如果用JDK1.5了,不要把j4下包和用于1.5的包都拷贝到项目lib下,会冲突,本人第一次写博客,希望大家一起交流。