次のコードは動作していません。私はなぜこれが動かないのか見当たりません。にstruts2イテレータタグが含まれています
<s:iterator value=%{questions} id="question">
<s:if test='%{incorrectQs.contains("#question.questionId")}'>
Print something here
</s:if>
</s:iterator>
上記のコードでは、基本的に私はアクションクラスにgetQuestionsというメソッドを持っています。このリストには、質問IDを取得/設定するExamクラスのオブジェクトが含まれています。私はまた、文字列を含むwrongQsリストを持っています。私は、wrongQsにquestionIdが含まれているかどうか確認しています。それは私はいくつかのテキストを印刷したい場合。上記のコードは機能しませんが、以下のコードは無作為に動作します。時にはそれが動作し、時にはそれが... :(
<s:iterator value=%{questions}>
<s:if test='%{incorrectQs.contains("${questionId}")}'>
Print something here
</s:if>
</s:iterator>
は誰が?
文字列試験のquestionIdプロパティですか?そうでない場合は、おそらくタイプ変換の問題です。文字列の値が文字列のtoString()値と等しい場合でも、String equalsメソッド(List containsメソッドによって呼び出される)はIntegerを渡すとtrueを返しません整数。 –
はい、それは文字列です... – Omnipresent
実際にタイプをチェックする方法はありますか? – Omnipresent