Struts 2 中是否可以有两个<s:submit>提交按钮来绑定不同的操作?<s:form>

问题描述 投票:0回答:2
可以做这样的事情吗?

<s:form action="formAction1" namespace="/form1"> <s:form action="formAction2" namespace="/form2"> <s:textfield name="user"/> <s:password name="pwd" /> <s:submit name="sub1" value="start1"> <s:submit name="sub2" value="start2"> </s:form> </s:form>
即如果我点击 

start1

 按钮,那么 
formAction1
 将被提交,
否则当点击 
start2
 时,
formAction2
 将被提交。

实际上,我想以

单一形式2个不同的按钮上执行2个不同的操作

不想想使用URL <s:url>

标签。

java forms jsp button struts2
2个回答
2
投票
不,这在 HTML 中是不可能的,在 Struts2 中也是不可能的。您不应该有嵌套表单,但您可以在页面上使用多个表单。

<s:form> <s:textfield name="user"/> <s:password name="pwd" /> <s:submit name="sub1" value="start1" action="formAction1"> <s:submit name="sub2" value="start2" action="formAction2"> </s:form>

另请参阅

如何对齐两个提交按钮?。还有如何配置 Struts2 以使用操作前缀的信息。


1
投票
正如您在代码中所示,这是不可能的;但您可以拥有一个包含多个按钮的表单,并且可以在每个按钮上执行不同的操作。

您可以使用以下代码来实现

<s:form method="post" action="mySubmitAction"> // your form fields <s:submit value="Submit"/> <s:submit value="Clear" action="myClearAction"/> </form>

这里如果你点击第一个按钮

mySubmitAction

将会被调用。

如果您单击第二个按钮

myClearAction

 将被调用(因为我们在第二个按钮中提供了 
action
 属性,而不是 
mySubmitAction
 操作 
myClearAction
 操作将被调用)。

您可以在这两个操作中访问所有表单字段。

希望这对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.