导入jar包
导入spring的jar包时可能会报jarweb冲突的错误,可以删除.jar以外的javaweb的jar包。
导入struts2-blank中所有包即可
要整合spring和struts需要另外加一个jar包
Struts 2 Spring Plugin » 2.3.34
注意,不是所有的struts2-spring-plugin:jar都可以,要选择合适的,不然可能会报错。
struts.xml
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 配置了系列常量 -->
<constant name="struts.i18n.encoding" value="GBK"/>
<constant name="struts.devMode" value="true"/>
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
<package name="default" namespace="/" extends="struts-default">
<action name="login" class="loginAction">
<!-- 为两个逻辑视图配置视图页面 -->
<result name="error">/error.jsp</result>
<result>/welcome.jsp</result>
</action>
<action name="index">
<result>/loginForm.jsp</result>
</action>
</package>
</struts>
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<bean id="myService" class="com.atliin.test.MyServiceImpl"/>
<bean id="loginAction" class="com.atliin.test.LoginAction" scope="prototype" p:ms-ref="myService"/>
</beans>
LoginAction
package com.atlin.test;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport
{
// 下面是用于封装用户请求参数的两个成员变量
private String username;
private String password;
// 系统所用的业务逻辑组件
private MyService ms;
// 设值注入业务逻辑组件所必需的setter方法
public void setMs(MyService ms)
{
this.ms = ms;
}
// username的setter和getter方法
public void setUsername(String username)
{
this.username = username;
}
public String getUsername()
{
return this.username;
}
// password的setter和getter方法
public void setPassword(String password)
{
this.password = password;
}
public String getPassword()
{
return this.password;
}
// 处理用户请求的execute方法
public String execute() throws Exception
{
// 调用业务逻辑组件的validLogin()方法
// 验证用户输入的用户名和密码是否正确
if (ms.validLogin(getUsername(), getPassword()) > 0)
{
addActionMessage("哈哈,整合成功!");
return SUCCESS;
}
return ERROR;
}
}
Myservice
package com.atlin.test;
public interface MyService {
int validLogin(String username , String pass);
}
MyserviceImpl
package com.atlin.test;
public class MyServiceImpl implements MyService
{
public int validLogin(String username , String pass)
{
// 此处只是简单示范,故直接判断用户名、密码是否符合要求
if ( username.equals("admin")
&& pass.equals("123456") )
{
return 99;
}
return -1;
}
}
loginForm.jsp
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<!DOCTYPE >
<html >
<head>
<title>登录页面</title>
</head>
<body>
<h3>用户登录</h3>
<form action="login">
<input name="username" />
<input name="password"/>
<input type="submit"/>
</form>
</body>
</html>
error.jsp
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<!DOCTYPE>
<html>
<head>
<title>错误页面</title>
</head>
<body>
您不能登录!
</body>
</html>
welcome.jsp
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<!DOCTYPE>
<html>
<head>
<title>成功页面</title>
</head>
<body>
您已经登录!<br/>
</body>
</html>
补充一个web.xml
一定要注意web.xml是否正确,我在这里被坑了很多次
<?xml version="1.0" encoding="GBK"?>
<web-app 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_3_0.xsd" version="3.0">
<!-- 使用ContextLoaderListener初始化Spring容器 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- 定义Struts 2的FilterDispathcer的Filter -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!-- FilterDispatcher用来初始化Struts 2并且处理所有的WEB请求。 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
推荐一个很好的提供jar包和maven的网站
点击进入
总结:
使用框架需要细心,配置环境不要怕麻烦,一步一步的跟着配置会遇到问题,但是配置好以后再次使用就很方便了,难的都是第一次。不过一般这种框架使用,错误的原因几乎都是jar包版本不合适。