外星人源码论坛 首页 编程经验

Struts2深入之动态调用Action

2018-3-21 12:26
原作者: 外星人源码网 来自: 外星人源码网 收藏 分享 邀请

使用过Struts2的小伙伴们应该知道当我们的action的方法过多是如果需要通过Struts2框架进行运行,我们就必须在Struts2的配置文件Struts2.xml文件中配置多个action属性标签,但是当action个数在10以上时这种方法就显得 ...

使用过Struts2的小伙伴们应该知道当我们的action的方法过多是如果需要通过Struts2框架进行运行,我们就必须在Struts2的配置文件Struts2.xml文件中配置多个action属性标签,但是当action个数在10以上时这种方法就显得不那么方便了,在此我们使用三种方法通过Struts2框架来动态地调用action

【1】通过配置action属性
【2】通过感叹号的方式来调用
【3】通过通配符的方式

接下来我们就一一为大家讲解以上三种方法的使用:

【1】通过配置action属性

首先在我们action中有两个方法---add和update,核心代码如下:

public String add()

{
        return SUCCESS;
}
public String update()
{
        return SUCCESS;
}
接下来我们就需要在Struts.xml文件中进行相关配置,配置中action的name属性不能出现同名,在其后的action的method属性,指出调用action的哪个方法
 <struts>
       <package name="default" namespace="/" extends="struts-default">
        <action name="helloworld">
                        <result>/result.jsp</result>
                </action>
        <action name="addAction"method="add">
                        <result>/add.jsp</result>
                </action>
     <action name="updateAction"method="update">
                   <result>/update.jsp</result>
                </action>
        </package>
</struts>

当我们在地址栏中输入http://localhost:8080/struts2...,即可调用HelloWorld这个action的add方法,结果如下图所示:

【2】通过感叹号的方式来调用

(Struts官方不推荐使用该方法,但在此仍在这里和大家分享一下)
使用该方法,首先应该在Struts.xml配置文件一句话:

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

使用这句话的目的是允许Struts动态地调用方法
之后的Struts.xml配置文件对action的配置如下:

<package name="default" namespace="/" extends="struts-default">

        <action name="helloworld">
                <result>/result.jsp</result>
                <result name="add">/add.jsp</result>
                <result name="update">/update.jsp</result>
        </action>
</package>

另外也需要在action相关的方法中的返回值进行修改,执行时success,而实现这个方法动态调用action时则需要将return 后的值应和action标签中result属性的name值一致,具体如下图:

public String add()

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

在地址栏输入的地址也需做相应的改变,具体如下:
http://localhost:8080/struts2...,其结果如下图:

【3】通过通配符的方式(官方推荐的使用方式)

首先应该讲Struts.xml配置文件中的constant标签中的value属性改为false,另外Struts.xml文件中的其他部分应需做相应的修改,具体如下:

 <package name="default" namespace="/" extends="struts-default">
                <action name="helloworld_*" method="{1}" 
           >
                        <result>/result.jsp</result>
                        <result name="add">/add.jsp</result>
                        <result name="update">/update.jsp</result>
                </action>
        </package>

action和方法二中的方法一样
在地址栏输入的地址有所不同,具体如下:
http://localhost:8080/struts2...结果和上图一样
这就是三种调用action的方法,希望对大家有所帮助。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

粉丝 阅读13339 回复0
上一篇:
计算机网络相关问题总结发布时间:2018-03-21
下一篇:
代理模式发布时间:2018-03-21
国内最专业的源码技术交流社区
全国免费热线电话

0373-5171417

周一至周日9:00-23:00

反馈建议

admin@eenot.com 在线QQ咨询

扫描二维码关注我们