是否可以做这样的事情?
<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 -->
标记。
答案 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
将调用此操作
您可以访问这两个操作中的所有表单字段。
希望这会对你有所帮助。