您的位置:首页 > 编程语言 > Java开发

struts2自学学习笔记之一

2014-03-14 14:34 363 查看
什么是struts2?

struts2是从webwork2的基础上发展起来的,属于mvc框架。它不依赖于servlet,是无侵入的。struts2提供了拦截器,可以进行aop编程;还可以对制定方法进行校验,提供了全局范围,包范围和action范围的国际化资源文件的管理。其风格几乎和strut1不同,是线程安全的。

struts2的处理流程



如上图所示,到来一个用户请求,被struts2的核心控制器strutsPrepareAndExecuteFilter拦截.它在web.xml中的<url-pattern>/*.action</url-pattern>指定了用户请求类型,它会过滤用户的请求。当用户请求的路径下的有.action结尾的,

那么将会被struts2框架接受处理,否则不被该框架处理。被处理的请求然后被struts2内置的一些拦截器或者用户自

定义的拦截器处理,然后到action,最后有result 指定的页面跳转返回给用户。struts对用户的每次请求都会创建一

个新的action,因此struts的action是线程安全的。

以一个helloword的action为例,来透视这个流程。

首先创建一个struts2的项目,将相关jar包添加进去。然后编写一个HelloWorldAction的java类,属性和方向如下

public class HelloWorldAction {

private String name;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String execute() {

return "success";

}

}

然后分别配置web.xml和是struts.xml的配置文件.在 web.xml配置文件指定加载struts2的配置文件.

<filter>

<filter-name>struts2</filter-name>

<filter-class>

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

然后在classpath下的struts.xml配置中指定action的相关信息

<struts>

<package name="mytest" namespace="/test" extends="struts-default">

<action name="helloWorld" class="com.test.action.HelloWorldAction" method="execute">

<result name="success">/WEB-INF/page/test.jsp</result>

</action>

</package>

</struts>

然后在 result处指定你要返回给客户端的信息,或者其他的action都可以。

指定多个配置文件
有时候根据项目的需要需要多个配置文件,这时候就需要多个配置文件。假如有学生和老师两个配置文件 : student.xml和teacher.xml。那么我们只需要在struts2.xml中指定他们就行。
制定的形式为
<struts>
<constant name="struts.action.extension" value="do,ation">
<!--此处为struts2指定多个后缀 -->
<include file="student,xml" />
<include file="teacher.xml" />

<struts>
这样就ok了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: