Struts2之Action对象及相关配置

一、Action对象

  Action对象是Struts2框架中的重要对象,主要用于对HTTP请求进行处理,在Struts2 API中,Action对象是一个接口,位于com.opensymphony.xwork2包中。在Struts2项目开发中,创建Action对象都要直接或间接实现此对象。

  在Action接口中,包含了5个静态成员变量:

  • 静态变量SUCCESS,代表Action执行成功的返回值。如果在Action执行成功的情况下,需要返回到成功的页面,此时就可以将返回值设置为SUCCESS。
  • 静态变量NONE,代表Action执行成功的返回值,但不需要返回到成功的页面。主要用于处理不需要返回结果页面的业务逻辑。
  • 静态变量ERROR,代表Action执行失败的返回值。如在一些信息验证失败的情况下,可以使Action返回此值。
  • 静态变量INPUT,代表需要返回到某个输入信息的页面的返回值。如在修改某些信息时,加载数据后需要返回到修改页面,此时就可以将Action对象的返回值设置为INPUT。
  • 静态变量LOGIN,代表需要用户登录的返回值。如在验证用户是否登录时,Action验证失败,需要用户重新登录,此时就可以将Action对象的返回值设置为LOGIN。

 

二、请求参数的注入

  在Struts2框架中,表单提交的数据会自动注入到与Action对象相对应的属性。通过Action对象为属性提供setter方法进行注入。

  基本流程:

    Struts2框架的工作,主要是通过Struts2的过滤器对象拦截HTTP请求,然后将请求分配到指定的Action进行处理。由于在Web项目中配置的是Struts2过滤器,所以当浏览器向Web容器发送一个HTTP请求时,      Web容器就要调用Struts2过滤器的doFilter()方法。此时Struts2就接收到了HTTP请求,通过Struts2的内部处理机制,它会判断这个HTTP请求是否与某个Action对象相匹配。如果找到了与之匹配的Action,就会        调用Action对象的execute()方法,并根据处理结果返回相应的值,然后Struts2就会通过Action的返回值查找返回值所映射的页面,最后通过一定的视图回应给浏览器。

 

三、动态Action

  动态Action的处理方式,是通过请求Action对象中一个具体的方法来实现的操作,具体方式,是在Action的URL地址后方加上请求的字符串(方法名称),与Action对象的方法进行匹配,Action对象地址ui请求字符串之间以“!”进行分隔。例如:

1     <body>
2       <a href="userAction!add">添加用户</a>
3       <a href="userAction!updatee">更新用户</a>
4 
5     </body>
View Code

 

  可知,Action请求的处理方式并非一定要通过execute()方法进行处理,使用动态Action的处理方式更加方便。所以,在实际开发中个,可以将同模块的一些请求封装到一个Action对象中,使用Struts2提供的动态Action对不同请求进行处理。

 

四、Struts2的相关配置

  <1> Struts2的配置文件主要有4个,如下。

Struts2框架的配置文件
名称说明
struts-default.xml位于struts2-core-2.1.14.1.jar文件的org.apache.struts2包中
struts-plugin.xml位于Struts2提供的各个插件的包中
struts.xmlWeb应用默认的Struts2配置文件
struts.propertiesStruts2框架中属性配置文件
web.xml在该文件中也可以设置Struts2框架的一些信息

 

 

 

 

 

  <2> Struts2的包配置

1 <struts>
2     <!-- 声明包-->
3     <package name="user" extends="struts-default" namespace="/user">
4         ......
5     </package>
6 </struts>
View Code
<package>元素所包含的的属性及说明
名称说明
name声明包的名称,以方便在其他地方引用此包,此属性是必须的
extends用于声明继承的包,也就是它的父包
namespace指定名称空间,也就是访问此包下的Action需要访问的路径
abstract将包声明为抽象类型(包中不定义action)

 

 

 

 

 

  <3> Struts2中Action的对象相关配置

  Action对象起到一个控制器的作用,Struts2框架通过Action对象处理HTTP请求。  

1 <action name="userAction" class="com.wyao.action.UserAction" method="save">
2     <result>success.jsp</result>
3 </action>
View Code
<action>元素的属性及说明
属性说明
name用于配置Action对象被请求的URL映射
class指定Action对象的类名
method设置请求Action对象时,调用Action对象的哪一个方法
converter指定Action对象类型转换器的类

 

 

 

 

 

  调用一个Action对象,默认情况下,它执行的是execute()方法。如果需要请求指定的方法,就可以通过<action>元素的method属性进行配置,将一个请求交给指定的业务逻辑方法进行处理。使用Action元素的method属性,其属性值需要与Action对象中的方法名一致,Struts2框架是通过method属性值查找与之配置的方法。

  <4> Struts2通配符匹配值

  通配符的配置方式主要针对在非常多的Action的情况下,通过一定的命名约定,使用通配符来配置Action对象,达到简化。

  常用的通配符有两个,

    • 通配符“*” : 匹配0或多个字符。
    • 通配符“\” :是一个转义字符,如需匹配“/”,则使用通配符“ V”。

  在struts.xml中,结果映射使用<result>元素进行映射,如:

1 <action name="register" class="com.shengsiyuan.struts2.RegisterAction">
2             <!-- 结果映射 -->
3             <result>/user/Result.jsp</result>
4             <!-- 结果映射 -->
5             <result name="success">/registerResult.jsp</result>
6             <!-- 结果映射 -->
7             <result name="input" type="dispatcher">/register.jsp</result>
8         </action>
View Code

  <result>元素有两个属性,name和type。其中name属性与Action对象中方法的返回值相对应,如果execute()方法返回值为input,那么,将<result>元素的name属性配置为input,对应Action对象返回值。type属性用于设置结果的返回值类型,如请求转发、重定向等。如果不设置<result>元素的name属性,那么默认为success。

 

       

 

转载于:https://www.cnblogs.com/Wyao/p/7015715.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值