有条件th:春季行动

dav*_*ski 1 java forms spring thymeleaf

我有一个form要修改的对象。该对象可以在两个页面中使用,并具有相同的值。

我想要两个按钮,并根据提交的按钮发送到一页或另一页。

现在我的代码是这样的:

<!-- Make my action dinamically depending on button submitted -->
<form action="#" th:action="@{/action}" th:object="${myObject}"
      method="post">
  <input type="submit" name="new" value="new"/>
  <input type="submit" name="edit" value="edit"/>
</form>
Run Code Online (Sandbox Code Playgroud)

th:action应该是动态的。

我在控制器中创建了方法,因此根据我可以处理它的操作:

@RequestMapping(value = {"/new", "/edit"}, method = RequestMethod.POST)
public String handlePost(@RequestParam String action, @ModelAttribute MyObject myObject) {

    if (action.equals("new")) {
        //Make some stuff
        return "new";

    } else if (action.equals("edit")) {
        //Make some stuff
        return "edit";
    }

    return "index";
}
Run Code Online (Sandbox Code Playgroud)

在 Thymeleaf 文档中我看到了类似的东西,但我无法处理它。

更新1

我的对象是一个在我的页面中呈现的 N 列矩阵。如果一切正常,我会编辑其值,但我可以使用操作添加新列。

我想要两个按钮,根据它们中的哪一个进入新建或进入编辑。对象始终存在。

有什么建议么?

谢谢

Sid*_*eva 5

我通过以下方式做到了这一点:

在控制器中:

modelAndView.addObject("action", "Save");
Run Code Online (Sandbox Code Playgroud)

在您的模板中:

th:action="${action} == 'Save' ? @{/manageCategory/addEditCategory/addCategory} : @{/manageCategory/addEditCategory/editCategory}" th:object="${addCategoryDTO}" method="POST"

<button th:text="${action == 'Edit'} ? 'Edit' : 'Save'"  id="btnsubmit"  class="btn blue okMark" type="submit" ></button>
Run Code Online (Sandbox Code Playgroud)