<s:form>中的两个按钮用于决定动作类</s:form>

时间:2014-05-01 19:50:23

标签: java forms jsp button struts2

是否可以做这样的事情?

<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个不同的操作 即可。

我不想使用网址<!-- s:url -->标记。

2 个答案:

答案 0 :(得分: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>

另见How to align two submit buttons?。还有关于如何配置Struts2以使用操作前缀的信息。

答案 1 :(得分: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将调用此操作

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

希望这会对你有所帮助。