我的枚举:
public enum ADD_OR_EDIT {
ADD("/user/add", "addForm"), EDIT("/user/edit", "editForm");
private String thAction;
private String thObject;
ADD_OR_EDIT(String thAction, String thObject) {
this.thAction = thAction;
this.thObject = thObject;
}
//getters and setters ommited to clear view
}
我的编辑器控制器行
addAttribute("addOrEdit", ADD_OR_EDIT.EDIT);
我的控制器行添加:
addAttribute("addOrEdit", ADD_OR_EDIT.ADD);
问题是如何修复我的百万美元形式以获得价值取决于那个。
例如:
<form action="#" th:action="(@{addOrEdit.thAction})" class="form-horizontal form-narrow" th:object="${addOrEdit.thObject}"
method="post">
(这个没有用)
更新:
问题在于enum的第二个参数 - thObject。
补充说明:
model.addAttribute("basicForm", basicForm);
model.addAttribute("addOrEdit",ADD_OR_EDIT.ADD);
编辑:
model.addAttribute("editForm", editForm);
model.addAttribute("addOrEdit",ADD_OR_EDIT.EDIT);
也许th:object的价值是&#34; addForm&#34;而不是addForm,这会导致错误。
UPDATE2:
这个有效:
<form action="#" th:action="(${addOrEdit.thAction})" class="form-horizontal form-narrow" th:object="(${basicForm})"
method="post">
这个也适用:
<form action="#" th:action="(${addOrEdit.thAction})" class="form-horizontal form-narrow" th:object="(${editForm})"
method="post">
现在的情况是通过enum连接它们就像我们在thAction上所做的那样: 这不起作用:
<form action="#" th:action="(${addOrEdit.thAction})" class="form-horizontal form-narrow" th:object="(${{addOrEdit.thObject})"
method="post">
答案 0 :(得分:2)
使用columns.data
代替th:action="${addOrEdit.thAction}"
<强> 更新 强>:
th:action="@{addOrEdit.thAction}"
答案 1 :(得分:1)
这实际上取决于您想要POST的信息类型。如果是某个用户pojo,那么你必须在表单中包含每个字段。基本情况看起来像这样:
<form action="#" th:action="@{${addOrEdit.thAction}}"
class="form-horizontal form-narrow" th:object="${__${addOrEdit.thObject}__}"
method="post">
<!--FIELDS YOU WANT TO SUBMIT-->
<input name="id" type="text" th:value="*{id}" hidden="hidden"/>
<input name="name" type="text" th:value="*{name}" hidden="hidden"/>
<input name="gender" type="text" th:value="*{gender}" hidden="hidden"/>
<button type="submit">Submit</button>
</form>