jspスクリプトレット(<%%>内)に次のコードがあります。
boolean blockScreen = false;
if(title.equalsIgnoreCase(labelA) || title.equalsIgnoreCase(labelB))
{
blockScreen = true;
}
上記のjspに対応して生成されたJavaファイルには、次のコード(同一)が含まれています。
boolean blockScreen = false;
if(title.equalsIgnoreCase(labelA) || title.equalsIgnoreCase(labelB))
{
blockScreen = true;
}
しかし、デバッグすると、blockScreen変数が表示されません。クラスファイルを逆コンパイルすると、次のコードが表示されます。
if(!title.equalsIgnoreCase(labelA))
if(!title.equalsIgnoreCase(labelB));
blockScreen変数がクラスファイルでクリーンアップされる理由がわかりません。同じ変数がac:chooseタグのさらに下で使用されます。
<c:choose>
<c:when test="${blockScreen==true}">
<!--do something -->
</c:when>
<c:otherwise>
<!--do something else -->
</c:otherwise>
</c:choose>
JBossEAP6サーバーを使用しています。
この点での助けはありがたいです。