我想创建一个隐藏的输入字段:
<input type="hidden" th:value="${map.version} name="version"/>
问题:
version
可能还有不存在的属性(我不是在讨论null!)
现在我得到一个例外Property or field 'version' cannot be found on object
我需要什么:
如果它不存在,则可以忽略th:value语句或删除标记 p>
澄清:
map
来自Spring Controller的处理程序方法:
@PostMapping("/new")
public String handleMapFormSubmit(
@ModelAttribute("map") @Valid AddMapCommand command, BindingResult result ) {
if ( result.hasErrors() ) {
return "map-form";
}
// do some stuff
return ".....";
}
问题是此处理程序方法中的map
(AddMapCommmand)不包含 version
属性。在另一个处理程序方法(UpdateMapCommand)中。重点是重用 map-form
百万美元模板在两种情况下几乎相似。
答案 0 :(得分:1)
您可以尝试将instanceof
运算符仅用于包含该属性的对象:
<input type="hidden"
th:if="${map instanceof T(my.project.UpdateMapCommand)}"
th:value="${map.version} name="version">
为了将来参考,使用map
这样的变量非常令人困惑,并且读者不会将其解释为java.util.Map
。您应该更改map
变量名称以减少混淆,或者至少是为了在StackOverflow上提出问题。