2016-08-02 6 views
1

私は1つの変数に結合する2つのオブジェクトを持っています。オブジェクトはそのように見えますJSPで配列を使用する

{name: "James", type: "author"}, {name: "Amelia", type: "author"} 

そして、私のJSPで${global.content.credits.by}でアクセスできます。私がしたいのは、${authorNames}変数が呼び出されたときに、James, Amy(リストの最後の項目の末尾にカンマはありません)のように表示されているので、各オブジェクトの2つの名前がリストアップされています。

私は次のことを試してみた:

<c:forEach items="${global.content.credits.by}" var="author" varStatus="loop"> 
    <c:set var="authorNames" value="${author.name}" /> 
</c:forEach> 

をしかし、私は著者名のすべてを表示するために得ることができる唯一の方法は、ループの外で$ {authorNames}変数は上の上書きされ、ループ内にあります各反復。

JSPで何らかの配列プッシュメソッドがありますが、両方の名前を結合し、最後のループの他にそれぞれの間にカンマを追加することができます。

答えて

2

名前を上書きするのではなく、authorNamesに追加することができます。

<c:forEach items="${global.content.credits.by}" var="author" varStatus="loop"> 
    <c:if test="${loop.index == 0}> 
    <c:set var="authorNames" value="${author.name}" /> 
    </c:if> 
    <c:if test="${loop.index != 0}> 
    <c:set var="authorNames" value="${authorNames},${author.name}" /> 
    </c:if> 
</c:forEach> 
関連する問題