最简单的struts运用
好久没用了,忽然想玩玩的时候,发现虽然有思路但费了好久才配出来,做此文章紧回忆:
需要最少jar包
struts2-core-2.3.3.jar:Struts 2框架的核心类库
xwork-core-2.3.3.jar:Command模式框架,WebWork和Struts2都基于xwork
ognl-3.0.5.jar: 对象图导航语言(Object Graph Navigation Language), struts2框架通过其读写对象的属性
freemarker-2.3.19.jar:Struts 2的UI标签的模板使用FreeMarker编写
commons-logging-1.1.x.jar:ASF出品的日志包,Struts 2框架使用这个日志 包来支持Log4J和JDK 1.4+的日志记录。
commons-fileupload-1.2.2.jar: 文件上传组件,2.1.6版本后需要加入此文件
commons-io-2.0.1.jar:传文件依赖的jar包
commons-lang3-3.1.jar:对java.lang包的增强
asm-3.3.jar:提供了字节码的读写的功能,包含了核心的功能,而其他的 jar包都是基于这个核心的扩展.
asm-commons-3.3.jar:提供了基于事件的表现形式。
asm-tree-3.3.jar:提供了基于对象的表现形式。
javassist-3.11.0.GA.jar:代码生成工具, struts2用它在运行时扩展 Java类
1、JSP页面
<s:form action="wsp_login" method="post">
<s:textfield label="姓名"/>
<s:submit value="提交"/>
</s:form>
<a href="${ pageContext.request.contextPath }/wsp_login.action">点击我</a>
<form action="${ pageContext.request.contextPath }/wsp_login.action" method="post" >
数字一:<input type="text" name="num1">
数字二:<input type="text" name="num2">
和为:${sum }
<input type="submit" value="提交">
</form>
2、web.xml文件最简单配置
<!--
FilterDispatcher是struts2.0.x到2.1.2版本的核心过滤器.!
StrutsPrepareAndExecuteFilter是自2.1.3开始就替代了FilterDispatcher的.!
struts的配置简单的就这一个过滤器就ok了
-->
<filter>
<filter-name>strutsFilter</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>strutsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3、struts.xml配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="pack" namespace="/" extends="struts-default">
<action name="wsp_*" class="cn.wsp.MyTest" method="{1}">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
4、action接受处理
package cn.wsp;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class MyTest extends ActionSupport{
private int num1;
private int num2;
private int sum;
public int getNum1() {
return num1;
}
public void setNum1(int num1) {
this.num1 = num1;
}
public int getNum2() {
return num2;
}
public void setNum2(int num2) {
this.num2 = num2;
}
public String login()
{
sum = num1+num2;
ServletActionContext.getRequest().setAttribute("sum", sum);
return SUCCESS;
}
}