简单的HelloAction 的实现:
1)创建包结构……
com.sun.entity
com.sun.dao
com.sun.action
2)复制struts2的核心包
xwork-core-2.1.6.jar
struts2-core-2.1.8.1.jar
ognl-2.7.3.jar
freemarker-2.3.15.jar
commons-fileupload-1.2.1.jar
javassist-3.11.0.GA.jar
3)配载前端控制器(FC)
Struts2 通过Filter的方式提供
需要在web.xml中进行配置:
<filter>
<filter-name>fc</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>fc</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4) 编写Struts2的配置文件,用XML的方式声明控制逻辑
(比如:请求和Action以及View之间的对应关系等等...)
该文件应置于类路径下(\WEB-INF\classes),在Eclipse
工具下,可以在src文件夹中编辑该文件,Eclipse会将其
Copy到类路径下。
<struts>
<!--
package.一个package中可以定义多个Action.
属性:
name—唯一的标识
namespace—访问该package的action时的地址目录
extends—继承的package
(是Struts2预定义的struts-default,或者是其子包)
继承的目的是重用struts-defalut中预定义的
result-type和interceptor
-->
<package name="p1" extends="struts-default" namespace="/core">
<!--
用于定义针对某一种请求的完整控制流程
属性:
name—唯一标识该Action;还标识请求的地址
class—表示和该请求对应的Action类的类名
method—表示和该请求对应的Action类中的方法名
当Struts2收到名为name所指定的请求后,会实例化
class所指定的类,并调用method所指定的方法
该方法必须返回String类型的参数
-->
<action name="hello" class="com.tarena.tts.action.HelloAction"
method="go">
<!--
用于声明该控制流程中可能调用的Result
Struts2会根据调用Action方法所返回的
String来决定使用哪一个Result来输出结果(View)
-->
<result name="r1">/jsp/one.jsp</result>
<result name="r2">/jsp/two.jsp</result>
</action>
</package>
</struts>
5) 编写Action类和JSP页面