我需要将评论元素发送给HTML。
没有comment DTO
,实际上是TaskComment
。我在Task类中定义了
@ElementCollection
private Set<TaskComment> comments;
Ins taskcomment
,因为它是model
类,有一些属性,如:
private String message;
public String getUser() {
return user;
}
private ZonedDateTime createdAt = ZonedDateTime.now();
private String createdAtString;
我将params
定义为
Map<String, Object> params = prepareParams(task);
我把评论放在这里:
params.put("commentsAdded", Collections.singletonList(comment));
没有任何问题,我可以看到我的HTML:
<tbody>
<tr th:each="addedComment : ${commentsAdded}">
<td th:text="${addedComment.user}">user...</td>
<td th:text="${addedComment.message}">message ...</td>
</tr> </tbody>
我不知道为什么我们使用每个,只有一个评论对象。
但是当我想放置comment
的elementcollection时,它会给出错误。
@ElementCollection
private Set<TaskComment> comments;
我试过这个
params.put("commentsInTask",new ArrayList(Arrays.asList(task.getComments())));
但是在html中
<tr th:each="addedComment : ${commentsInTask}">
<td th:text="${addedComment.user}">user...</td>
<td th:text="${addedComment.message}">message ...</td>
代表
<td th:text="${addedComment.user}">user...</td>
该行给出了错误。我认为它在错误后停止,可能也会给其他林错误。
我试图放singletonMap
,但它不是hashmap。这是集合。
我试图把
params.put("commentsInTaskk",new ArrayList(Arrays.asList(task.getComments())));
但我无法使其发挥作用。我认为它会起作用。或者我做错了。
你有什么建议?
我使用spring boot + intellij。
例如,当我在html
中使用它时<tr th:each="addedComment : ${commentsInTask}">
<td th:text="${addedComment.key}">key ...</td>
<td th:text="${addedComment.value.user}">value.user...</td>
错误是:
org.thymeleaf.exceptions.TemplateProcessingException:异常 评估SpringEL表达式:“addedComment.key” (task_comment_cta:29)
答案 0 :(得分:1)
我确实喜欢这个并且工作
<tr th:each="allComments : ${commentsInTask}">
<tr th:each="comment : ${allComments}">
<td th:text="${comment.user}">user ...</td>