SSH学习(三)Struts2之Action下

17 篇文章 0 订阅

原文来自搬砖工,如需转载请注明出处


博主SSH框架专栏请戳这里http://blog.csdn.net/column/details/14227.html

接着上篇文章继续学习

三、配置Action

1.配置action示例

当用户发出请求后,先通过配置在web.xml中的拦截器拦截之后,再查找在struts.xml中配置的业务逻辑action。

struts2使用包来管理action,action是package的一个子元素,如:

<action name="login" class="com.study.action.LoginAction">
	<result name="success">/Success.jsp</result>
	<result name="input">/login.jsp</result>
</action>
2.Action的属性

name:Action的名称,请求调用的标识(name加上扩展名)

class:Action的实现类

converter:Action的转换器实现类

method:指定要调用的方法(除execute之外的方法)

3.Action的子元素Result

Result是用于页面跳转,如成功success跳转1.jsp,失败failure跳转2.jsp

四、Action中动态调用方法

同一个业务用例可能有多个方法,Struts1提供了DispatcherAction来解决,在struts2中动态方法调用如下:
1.直接指明要调用的方法

Actionname!methodname.action 如:user!login.action

解释:是在用户请求的时候,调用userAction类中的login方法,就在请求的参数值设置为user!login.action,同样的,请求register方法参数就设置为user!register.action

2.为action增加method元素

<action name="userLogin" class="com.study.action.UserAction" method="login">
	<result name="success">/Success.jsp</result>
	<result name="input">/login.jsp</result>
</action>
<action name="userRegister" class="com.study.action.UserAction" method="register">
	<result name="success">/Success.jsp</result>
	<result name="register">/login.jsp</result>
</action>
解释:在上面的参数配置中,加入了method属性。当我们请求userLogin方法的时候,它会去调用UserAction的login方法。在请求参数的时候写userLogin.action就可以了。对于register是同样的道理。
3.使用通配符

<action name="*Action" class="com.study.action.UserAction" method="{1}">
	<result name="success">/Success.jsp</result>
	<result name="input">/login.jsp</result>
	<result name="register">/login.jsp</result>
</action>
解释:如上,我们把name写为*Action,当我们请求参数值为loginAction的时候,配置默认将Action前面的login作为method的值。就相当于是method=login。那么参数为registerAction,请求的方法当然是UserAction中的register方法。这里就把一个类中的多个方法整合在一起了


下篇文章将学习Struts2的类型转换(converter)



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值