我尝试显示对象的某个字段
private Integer id;
private String enumName;
private Map<String, String> fields = new HashMap<>();
...
在我的控制器中我有
List<EnumTypesDto> enumTypes = enumTypesService.getAllEnumTypes();
model.addAttribute("enumTypes", enumTypes);
在我的模板中我有
<p th:each="entry: ${enumTypes.fields}">
<span th:text="'Key: ' + ${entry.key} + ', Value: ' + ${entry.value}"></span>
</p>
我收到此错误
EL1008E: Property or field 'fields' cannot be found on object of type 'java.util.ArrayList' - maybe not public?
答案 0 :(得分:1)
仔细检查您的模板。 enumTypes
是EnumTypesDto
个对象的列表,而不是您在fields
类中定义的地图EnumTypesDto
。我假设你正在努力实现这样的目标:
<div th:each="type: ${enumTypes}">
<h2 th:text="${type.enumName}">
<p th:each="entry: ${type.fields}">
<span th:text="'Key: ' + ${entry.key} + ', Value: ' + ${entry.value}"></span>
</p>
</div>
在上面的例子中,我们首先迭代所有EnumTypesDto
个对象,对于每个对象,我们迭代fields
map以显示其键和值。我希望它有所帮助。