Struts2动态调用DMI及错误解决方法

在Strust2中action可以定义自己的方法,调用方法有两种方式,一种方式是struts.xml中指定method来表示需要用到的方法,

但是这种方法缺点在于如果你的Action中有很多方法则要多次配置,这样很繁琐,另一种方法是使用动态方法调用DMI。

举一个简单的例子——

比如LoginAction中有add,dell方法,则

1、配置struts.xml文件

 

1 <package name="default"  extends="struts-default">
2       <action name="login"  class="com.action.loginAction">
3            <result name="add">/add.jsp</result>
4            <result name="dell">/dell.jsp</result>
5      </action>
6 </package>

 

2、在 loginAction中 编写add方法和dell方法:

public  String  add()
{
  return "add";
}
public  String dell()
{
  return "dell";
} 

3、链接中使用!动态调用所需方法:

<a  href="login!add">调用add方法</a>
<a  href="login!dell">调用dell方法</a>

常见错误:

 There is no Action mapped for namespace [/XXX] and action name [xxx!xxx] associated with context path [/xxx_method].   

 

解决方法:

 默认的Struts.xml中是这样的

<constant name="struts.enable.DynamicMethodInvocation" value="false" />

 这样我们在地址栏输入感叹号动态调用方法的时候会出错,我们只需更改这一句即可

  <!-- 打开Struts的DMI -->

 <constant name="struts.enable.DynamicMethodInvocation" value="true" />  

 

 

 

转载于:https://www.cnblogs.com/lkxsnow/p/3394546.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值