java初学者专题教程:struts2开发步骤详情
一、去struts2官网下载支持包
地址:http://struts.apache.org/download.cgi,目前最新版本是2.3.16.3,这里下载的是struts2-2.3.16.3-all.zip.
将下载的压缩包解压
二、打开开发工具,创建新的web项目工程,这是使用的是myeclipse6.5
三、导入struts2支持包
打开下载之后解压的文件夹,打开lib目录将以下包加入刚创建的项目工程
commons-fileupload-1.3.1.jar
commons-io-2.2.jar
commons-logging-1.1.3.jar
freemarker-2.3.19.jar
ognl-3.0.6.jar
struts2-core-2.3.16.3.jar
xwork-core-2.3.16.3.jar
commons-lang-2.4.jar
commons-lang3-3.1.jar
注意:这里下载的是struts2-2.3.16.3-all.zip,与以往2.1有所不同,
还要加struts2-2.3.16.3-all\struts2-2.3.16.3\apps\struts2-blank.war(需要解压)解压后
struts2-blank\WEB-INF\lib里面的javassist-3.7.ga.jar文件
如果没有添加该包,启动工程将会报如下错误
[mw_shl_code=java,true]严重: Dispatcher initialization failed
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
解决错误地址:http://www.javalearn.net/forum.p ... p;highlight=struts2
三、配置struts2.xml文件
你可以百度一下strtus2.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>
<!-- 解决中文乱码 -->
<constant name="struts.i18n.encoding" value="UTF-8" />
<package name="default" namespace="/" extends="struts-default">
</package>
</struts>
具体该文件如何配置,自己去查找资料,这里很简单。不具体说明
三、配置监听器
由于我们项目运行在发出请求的时候,struts2需要对请求进行拦截,所以,在web.xml文件中我们需要配置struts2监听器
向web.xml文件添加如下代码
<!--配置过滤器,如下设置是struts2的主要拦截器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<!-- 对应于<filter>配置的<filter-mapping>,一个filter可以对应配置多个<filter-mapping> -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
四、填写修改jsp页面
这里我们做一个简单的案例,在一个页面中放入一个文本框,然后提交给后台接收数据,又返回给前台显示数据。
1>在index.jsp中添加如下表单代码 并修改编码格式
<form action="" method="post">
<input type="text" value="" name="textValue"/>
<input type="submit" value="提交" />
</form>
form的action对应着我们要提交的一个地址,这里我们先不填
2>在WebRoot目录下创建新的jsp文件 result.jsp 该jsp是我们在发送请求之后响应结果的页面
同样修改编码格式并添加如下代码
提交的内容: ${result}
五、添加Action
在src目录下创建的包action,在action包下创建一个java类,StrutsAction.java,类继承ActionSupport
定义一个字段textValue,实现set与get方法。再创建一个方法,代码如下
package action;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class Struts2Action extends ActionSupport{
//接受请求的数据
private String textValue;
public String getTextValue() {
return textValue;
}
public void setTextValue(String textValue) {
this.textValue = textValue;
}
public String getTextName(){
//获取request对象并储存返回页面
ActionContext ac = ActionContext.getContext();
Map request=(Map)ac.get("request");
request.put("result", textValue);
return "result";
}
}
getTextName方法作用是是去响应请求
同时修改struts2.xml文件在package标签下添加如下代码
<action name="getText" class="action.Struts2Action" method="getTextName">
<result name="result">result.jsp</result>
</action>
一个action相当于一个请求,name代表请求名称,class,处理请求的类,method是处理请求类中的方法
result标签是在处理请求后需要跳转的地址
在修改strtus2.xml文件之后,同时需要修改index.jsp表单中form的action属性
<form action="getText.action" method="post">
基本配置在这里已经完成了启动tomcat效果如下
原文地址及案例源码下载:http://www.javalearn.net/forum.php?mod=viewthread&tid=115