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

Struts2中(动态方法调用)DMI的一些问题

2014-05-15 20:09 387 查看
<package name="front" namespace="/front" extends="struts-default">

<default-action-ref name="index" />

<action name="helloword" class="struts.IndexAction">

<result name="add">

/hello.jsp

</result>

<result name="love">

/love.jsp

</result>

</action>

</package>

大家看上面程序,指定了action的class="struts.IndexAction“

再来看IndexAction类

package struts;

import com.opensymphony.xwork2.ActionSupport;

public class IndexAction extends ActionSupport{

public String add(){

return "add";

}

public String love(){

return "love";

}

}

里面并没有excute()方法,这时大家给以这样配置<action name="helloword" class="struts.IndexAction" method="add">就可以返回IndexAction类中add方法的值,

但是这种方法不推荐!推荐的方法是动态调用,也就是DMI.

比如在地址栏中输入URL:http://localhost:8080/struts2/front/helloword!add

但是:如果这样输入的话,会报错(There is no Action mapped for namespace [/front] and action name [helloword!add()] associated with context path [/Struts2_10003].)

因为:struts2中默认不允许使用DMI

所以:需要在配置文件中打开: <constant name="struts.enable.DynamicMethodInvocation" value="true"/>这样大家在地址栏动态输入就可以得到预期的页面
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: