struts2.5方法访问篇

自从用了struts2的2.5版本之后,整个人都不好了有木有,按照以前2.3的配置了一下,全是错误。泪奔ing...

这里介绍一下访问指定方法的方式

假设Test类在test包里,类中有一个test1方法,返回值是success,还有一个test2方法,返回值是error。有a.jsp,b.jsp和c.jsp三个页面。

1、"method"属性指定方法访问

我们在a.jsp中这么写

<a href="localhost:8080/project_name/action_name">点我跳到b</a>

在struts.xml中这样配置

<package name="page_name" extends="struts-default" namespace="">
<!-- 定义action -->
<action name="action_name" class="test.Test" method="test1">
<!-- 定义处理后的页面 -->
<result name="success">b.jsp</result>
</action>
</package>

运行访问就能跳到b页面啦

不过这种方式并不推荐,比如如果想访问test2方法,还得再定义。如果一个类中有很多方法,那得写到什么时候,简直累成狗,所以就有了以下2种访问方式

2、“!”方法访问

我们在a.jsp中这么写

<a href="localhost:8080/project_name/action_name!test1">点我跳到b</a>
<a href="localhost:8080/project_name/action_name!test2">点我跳到c</a>
struts.xml中配置为

<constant name="struts.enable.DynamicMethodInvocation" value="false" />	<!--  一定要加上这一句,不然用不了  -->
<package name="page_name" extends="struts-default" namespace="">
<!-- 定义action -->
<action name="action_name" class="test.Test">
<!-- 定义处理后的页面 -->
<result name="success">b.jsp</result>
<result name="error">c.jsp</result>
</action>
</package>
运行就能跳到b页面和c页面啦
是不是感觉比第一种方法简单多啦,这种方法虽然好使,但并不推荐
3、"*"通配符方法访问
这种方法官方强烈推荐
我们在a中这么写

<a href="localhost:8080/project_name/action_test1">点我跳到b</a>
<a href="localhost:8080/project_name/action_test2">点我跳到c</a>
struts.xml中配置为

<package name="page_name" extends="struts-default" namespace="">
<!-- 定义action -->
<action name="action_*" class="test.Test" method="{1}">
<!-- 定义处理后的页面 -->
<result name="success">b.jsp</result>
<result name="error">c.jsp</result>
<allowed-methods>test1,test2</allowed-methods>	<!-- 2.5版本之后的验证,必须加上  -->
</action>
</package>
运行后也能跳到b页面和c页面


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值