struts2 DMI 不起作用的原因

本文介绍了一个关于Struts2动态方法调用(DMI)的问题。作者在尝试使用动态方法调用时遇到了错误提示,原因是配置文件中误将DMI设为了禁用状态。通过调整配置,将struts.enable.DynamicMethodInvocation的值改为true,问题得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初学struts,在学习动态方法调用的时候,写的链接为<a href="user/user!add">添加学生</a>

但是在点击链接时,出现下面这样的错误提示信息:

There is no Action mapped for namespace [/user] and action name [user!add] associated with context path [/Struts2_050_ActionMethod]


查了文档才知道,原来struts2出于两方面的考虑,对DMI可以选择enable和disable:1)DMI可能导致安全问题;2)DMI与通配符方法功能有重叠。

但是默认情况下,DMI是enable的。

仔细看了下我的配置文件,发现原来拷贝其他文件时,多拷贝了这么一句话

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

这句话就将DMI设置成了disable了。


删除这句话,或者把value改成“true”,就能得到正常想要的结果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值