コメント配列の最初の 12 要素を出力しています。12 が印刷されると、「More」リンクが印刷されます。COMMENT_COUNT int を使用してこれを行っており、印刷された各コメントでそれを繰り返しています。「More」リンクが印刷された後、COMMENT_COUNT の値を 0 に戻したい。
私は現在のハックをそのままにして、「More」リンクを印刷した後に ${clearCount()} を呼び出すだけです。ここで何が起こるかというと、12 個のコメントが出力され、次に「MORE」リンクが出力され、次にブール値「true」が出力されます。
これを行うには、はるかに優れた方法があると思います。${clearCount()} を呼び出すより良い方法、または「More」リンクを印刷した後に COMMENT_COUNT を 0 に設定するより良い方法を探しています。
--- 編集して追加 ----
追加の要件は、COMMENT_COUNT が最初の 12 個の表示可能なコメントのみをカウントすることです (コメントは、ユーザーによって表示される場合と表示されない場合があります)。
.tml:
<t:loop source="currentCategoryTextmedium.commentArraySorted" value="currentComment">
//test if the current comment should be visible
<t:if test="isCurrentCommentVisible()">
<t:if test="isCommentLessThan12()">
//print first 12 visible comments
<span>
<a blah blah>${currentComment.blahblah}</a>
</span>
</t:if>
</t:if>
</t:loop>
<t:if test="isCommentMoreThan12()">
//print one More link
<span>
<a "blah blah">MORE</a>
</span>
</t:if>
//Clear the COMMENT_COUNT so that the right number of comments print on another element
${clearCount()}
ジャバ:
public int COMMENT_COUNT;
public boolean isCommentLessThan12() {
if (COMMENT_COUNT < 12) {
COMMENT_COUNT++;
return true;
}
else {
return false;
}
}
public boolean isCommentMoreThan12() {
COMMENT_COUNT++;
if (COMMENT_COUNT > 12) {
return true;
}
else {
return false;
}
}
public boolean clearCount() {
COMMENT_COUNT= 0;
return true;
}