|
在上一篇<MyBatis,Spring整合简易教程>中已经提到了如何在Spring中整合MyBatis,这篇文章中,我们以一个用户登录的例子来简单的讲解一下如何将struts2一起整合进来,搭建SSM架构。
需要准备的软件包:Struts2核心jar包,以及Struts2的lib目录下struts2-spring-plugin-2.2.1.jar
前提步骤:MyBatis,Spring的整合本文不再重复,请参考另外一篇文章<MyBatis,Spring整合简易教程>,我们直接来看如何进一步整合Struts2
第一步:新建一个Web Project,导入Struts2核心包以及整合Spring需要用到的struts2-spring-plugin-2.2.1.jar到的Project的Build Path(也可以直接复制到WEB-INF/lib目录下),其他的步骤与<MyBatis,Spring整合简易教程>所提到的相同(可以直接在Web Project下进行MyBatis,Spring整合,以方便下一步的Struts2整合)。
第二步:编辑WEB-INF/web.xml文件,添加Struts2过滤器和Spring监听器的自启动,该文件内容如下所示:
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">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 加载Struts2 -->
<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>
<!-- 加载Spring -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
第三步:创建Action
在src下创建一个包,并在其下创建一个UserAction.java文件,内容如下:
UserAction.java
package action;
import org.apache.struts2.ServletActionContext;
import model.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import dao.UserMapper;
public class UserAction extends ActionSupport{
private User user;
private UserMapper userMapper;
public String execute()
{
//如果登录的用户存在
User userFinded=userMapper.selectUser(user);
if(userFinded!=null)
{
//将用户名放入session
ActionContext.getContext().getSession().put("username", userFinded.getUsername());
return SUCCESS;
}
return ERROR;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public UserMapper getUserMapper() {
return userMapper;
}
public void setUserMapper(UserMapper userMapper) {
this.userMapper = userMapper;
}
}
第四步:在Spring中配置Action
打开applicationContext.xml文件,在</beans>标签之前,加入下面这一段代码,并把applicationContext.xml复制到WEB-INF目录下
<bean id="userAction" class="action.UserAction">
<property name="userMapper" ref="userMapper"></property>
</bean>
第五步:配置Struts2
在src目录下创建struts.xml文件,内容如下所示:
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="test" extends="struts-default">
<action name="userAction" class="userAction">
<result name="success">suc.jsp</result>
<result name="error">err.jsp</result>
</action>
</package>
</struts>
第六步:在WebRoot目录下创建三个JSP文件index.jsp, suc.jsp, err.jsp.代码如下所示:
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>
</head>
<body>
<h1>用户登录</h1>
<s:form action="userAction">
<s:textfield name="user.username" label="用户名:"></s:textfield>
<s:password name="user.password" label="密码:"></s:password>
<s:submit value="登录"></s:submit>
</s:form>
</body>
</html>
suc.jsp
<html>
<head>
<title>登录成功</title>
</head>
<body>
<h1>登录成功</h1>
</body>
</html>
err.jsp
<html>
<head>
<title>登录失败</title>
</head>
<body>
<h1>登录失败</h1>
</body>
</html>
第七步:将项目发布到Tomcat并启动,打开页面进行登录测试 |
|
|