struts2的一种特殊的提交方法

本文介绍了一种在Struts2框架中实现单个Action类内多方法提交的有效配置方法。通过简单的页面设置即可实现对不同方法的调用,无需复杂的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们知道一个struts2的action类中,我们可以定义多个方法,不同的web页面的可以提交同一个action类中的不同方法。要实现这种功能,有多中配置方法。下面介绍一种比较好用,又比较简单的方法:
页面代码如下,其中的带有 hidden 属性的 input 中的name="method:test", 表示要将该form提交该 web/login 对应的action中的test方法:

<form action="web/login" method="post">
<input type="hidden" name="method:test" />
姓名:<input name="name" type="text" /> <br />
密码:<input name="password" type="password" /> <br />
<input type="submit" value="提交" />

Action代码如下:

package test;

import com.opensymphony.xwork2.ActionSupport;

public class Login extends ActionSupport
{
private String name;
private String password;

public String execute() throws Exception
{
if(!("".equals(name) || "".equals(password)))
return SUCCESS;
else
return INPUT;
}

public String test() throws Exception
{
return "test";
}

public String getName()
{
return name;
}

public void setName(String name)
{
this.name = name;
}

public String getPassword()
{
return password;
}

public void setPassword(String password)
{
this.password = password;
}
}

配置文件如下:

<struts>

<package name="login" namespace="/web" extends="struts-default">
<action name="login" class="test.Login">
<result name="input" type="dispatcher">/web/login.jsp</result>
<result name="success" type="dispatcher">/web/welcome.jsp</result>
<result name="test" type="dispatcher">/web/test.jsp</result>
</action>
</package>

</struts>

这种方法的优点是:
1)不需要在struts的配置文件中配置多个action,每一个action类只要配置单独的一个配置项。
2)采用 actionName!method="test" 的方式,需要js来辅助。该提交方式,只需要一个隐藏的intput就解决了。十分简洁有效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值