程序员的知识教程库

网站首页 > 教程分享 正文

Struts2——Action动态方法调用(struts2中的action作用)

henian88 2024-08-12 19:44:27 教程分享 101 ℃ 0 评论

这里就说一下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过滤器是必备的,某度上就能搜到,这里我就不写了!

我点击了查询用户1

结果

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表