我在百里香模板中有两个提交按钮。我希望它将其提交给同一控制器中的2个不同的动作。我做了这样的请求映射:
@RequestMapping(value="/directBind", params={"send"})
public String send(Model model, @ModelAttribute(value="directBind") DirectBind directBind){
@RequestMapping(value="/directBind", params={"addPolicy"})
public String addPolicy(final DirectBind directBind, Model model){
html中的两个输入按钮:
<input id="send" type="submit" value="send" name="send" class="btn btn-success finish" data-loading-text="Sent!"/>
<input type="submit" name="addPolicy" class="btn btn-default" style="margin-left: 1rem; margin-bottom: 1rem;"><span class="fa fa-plus"></span> </input>
表格:
<form enctype="multipart/form-data" class="ui form" th:object="${directBind}" th:action="@{/send}" method="post" style="padding:0 10px;">
它仅提交表单以发送操作。
答案 0 :(得分:1)
我推断,您的意图是使用一个spring控制器处理来自两个提交按钮的提交动作。
<input id="send_id" type="submit" name="action" value="send"/>
<input id="addPolicy_id" type="submit" name="action" value="addPolicy"/>
@RequestMapping(value="/directBind")
public String doExecute(@RequestParam("action") String action, Model model, @ModelAttribute(value="directBind") DirectBind directBind){
if (action=="send"){
//do something
send();
}
if (action=="addPolicy"){
//do something
addPolicy();
}
}
答案 1 :(得分:0)
我设法解决了这个问题。我在表单操作属性中使用了“ directBind”,并在请求映射中使用了参数鉴别符。有效!