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

SSH学习(三)Struts2之Action下

2017-01-14 18:44 316 查看
原文来自搬砖工,如需转载请注明出处

博主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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ssh 框架 struts