在两个按钮 在动作类来决定(Two buttons in to decide in t

2019-10-20 01:07发布

是否有可能做这样的事情?

<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 -->标签。

Answer 1:

不,这不可能在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的配置用行动前缀。



Answer 2:

这是不可能的,因为你在你的代码显示; 但可以有一个形式与多个按钮与不同的操作可以在每个按钮来执行。

您可以通过下面的代码实现它

<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动作将被调用)。

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

希望这会帮助你。



文章来源: Two buttons in to decide in the action class