2016-10-18 5 views
0

コメント要素をHTMLに送信する必要があります。シングルトンリスト内で要素コレクションを送信する

comment DTOはありません。実際にはTaskCommentです。

private String message; 

public String getUser() { 
     return user; 
    } 

private ZonedDateTime createdAt = ZonedDateTime.now(); 

private String createdAtString; 

は私が入れたこと

Map<String, Object> params = prepareParams(task); 

ようparamsを定義します。私はそれがmodelクラスであるため、のようないくつかの属性があり、その内部のTaskクラス

@ElementCollection 
private Set<TaskComment> comments; 

内部taskcommentのように定義されましたこのようなコメントは

params.put("commentsAdded", Collections.singletonList(comment)); 

と何の問題もなく、私はこのように私のhtml見ることができます:

を、私たちはそれぞれのために使用する理由を知らない、唯一のコメントオブジェクトがあります。

しかし、私がcommentのelementcollectionを入れたいとき、それはエラーを与えます。

@ElementCollection 
private Set<TaskComment> comments; 

私はそれがエラーを与えたライン

<td th:text="${addedComment.user}">user...</td> 

ため、この

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> 

を試してみました。私はそれがエラーの後に停止したと思う、おそらく他の林にもエラーを与えるだろう。

singletonMapを入力しようとしましたが、ハッシュマップではありません。コレクションです。

私は

params.put("commentsInTaskk",new ArrayList(Arrays.asList(task.getComments()))); 

を入れてみましたが、私はそれを動作させるcouldnot。私はそれがうまくいくと思った。または私は間違っていた。

あなたはどう思いますか?

私はスプリングブート+インテリジェを使用しています。例えば

私は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。キー」 (task_comment_cta:29)

答えて

1

私はこのようにやったと

<tr th:each="allComments : ${commentsInTask}"> 
<tr th:each="comment : ${allComments}"> 
    <td th:text="${comment.user}">user ...</td> 
を働きました
関連する問題