我是靠谱客的博主 活泼柠檬,最近开发中收集的这篇文章主要介绍Struts2中DMI(动态方法调用),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 1
<package name="front" namespace="/front" extends="struts-default">
 2
<default-action-ref name="index" />
 3
<action name="helloword" class="struts.IndexAction">
 4
<result name="add">
 5 
/hello.jsp
 6
</result>
 7
<result name="love">
 8 
/love.jsp
 9
</result>
10
</action>
11 </package>

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

再来看IndexAction类

 1 package struts;
 2 import com.opensymphony.xwork2.ActionSupport;
 3
 4
 5 public class IndexAction extends ActionSupport{
 6
public String add(){
 7
return "add";  //返回的result名称
 8 
}
 9
public String love(){
10
11
return "love";
12 
}
13 }

里面并没有excute()方法,这时大家给以这样配置

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

  就可以返回IndexAction类中add方法的值,

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

比如在地址栏中输入URL:http://localhost:8080/struts2/front/helloword!add (!后面的add是调用的方法名, 默认调用execute())

但是:如果这样输入的话,会报错(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"/>这样大家在地址栏动态输入就可以得到预期的页面

 

最后

以上就是活泼柠檬为你收集整理的Struts2中DMI(动态方法调用)的全部内容,希望文章能够帮你解决Struts2中DMI(动态方法调用)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部