前言:
现在姐妹们对“struts2 action”可能比较着重,大家都需要分析一些“struts2 action”的相关知识。那么小编同时在网络上汇集了一些关于“struts2 action””的相关知识,希望各位老铁们能喜欢,看官们一起来了解一下吧!这里就说一下Dynamic Method nvocation ,动态方法调用,什么是动态方法调用呢,就是一个Action里面包含多个方法调用。一般情况下,我们只需要在Action中写一个execute的方法,并返回String 就可以了,或者继承ActionSupport父类,重写这个方法。但是这样在一个Action中只能完成一个请求,为了解决真实开发中,同一个Action能处理类似的业务和资源,我们就可以用到动态方法调用了。
举个例子
查询用户页面Query user.jsp
<h2>提交用户信息</h2>
<form action="${pageContext.request.contextPath}/adduser" method="post">
用户编码:<input type="text" name="uid" /><br/>
用户名:<input type="text" name="uname" /><br/>
<input type="submit" value="提交" />
</form>
<a href="${pageContext.request.contextPath}/user!selUser1">
<h4>查询用户信息1</h4></a>
<a href="${pageContext.request.contextPath}/user!selUser2">
<h4>查询用户信息2</h4></a>
接下来struts.xml的配置
配置跟平成一样,只需要对Action和实现类做映射就可以了,这里特别要注意的是以下这个配置,这个配置主要是打开动态方法调用,如果这里没有打开,则不能使用动态方法调用,访问的结果将会出现404的页面
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<action name="匹配的返回值名" class="包名/类名" method="方法名>
<result>/获取参数页面</result>
</action>
注意:Action动态方法调用,继承ActionSupport要指定访问方法。
<action name="user" class="com.contro.action.TestAction">
<result name="s1">/message.jsp</result>
<result name="s2">/message.jsp</result>
<!-- 指定允许访问的方法,struts2.3版本之后必须添加此配置 -->
<allowed-methods>selUser1,selUser2</allowed-methods>
</action>
编写Action
跟平成的写的Action没两样,就是在Action里面实现页面调用到的那些方法,这里使用了两个方法selUser1()和selUser2(),所以我们需要在这个类中实现这两个方法。
public class TestAction extends ActionSupport{
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String selUser1(){
message="我是selUser1";
return "s1";
}
public String selUser2(){
message="我是selUser2";
return "s2";
}
}
当然整个流程还需要web.xml过滤器是必备的,某度上就能搜到,这里我就不写了!
标签: #struts2 action