是否有可能做这样的事情?
<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 -->
标签。
不,这不可能在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的配置用行动前缀。
这是不可能的,因为你在你的代码显示; 但可以有一个形式与多个按钮与不同的操作可以在每个按钮来执行。
您可以通过下面的代码实现它
<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
动作将被调用)。
您可以访问两个操作的所有表单字段。
希望这会帮助你。