JSPページのオブジェクトから変数を取得しました。
<%= ansokanInfo.getPSystem() %>
変数の値はNATであり、これは正しいため、この値に特定のページ要素を適用したいです。タグを使用してケースを知るにはどうすればよいですか?私は次のようなものを試しました
<c:if test = "${ansokanInfo.getPSystem() == 'NAT'}">
process
</c:if>
しかし、上記は何も表示しません。どうすればいいですか?または、スクリプトレット、つまり.
<% if (ansokanInfo.getPSystem().equals("NAT"){ %>
process
<% } %>
答えやコメントをありがとう。
試してください:
<c:if test = "${ansokanInfo.PSystem == 'NAT'}">
JSP/Servlet 2.4(バージョン番号だと思います)はELのメソッド呼び出しをサポートせず、プロパティのみをサポートします。最新のサーブレットコンテナは、メソッド呼び出し(Tomcat 7など)をサポートしています。
<c:if test="${ansokanInfo.pSystem eq 'NAT'}">
他の回答では、EL式で使用するプロパティ名に関する重要な詳細の1つが欠けていると思います。メソッド名からプロパティ名に変換するためのルールは、Java Bean標準の一部である 'Introspector.decpitalize` で指定されています。
これは通常、最初の文字を大文字から小文字に変換することを意味しますが、複数の文字があり、最初と2番目の文字の両方が大文字である(異常な)特殊なケースでは、そのままにします。
したがって、「FooBah」は「fooBah」になり、「X」は「x」になりますが、「URL」は「URL」のままです。
したがって、JSTLコードは次のようになります。大文字の「P」に注意してください。
<c:if test = "${ansokanInfo.PSystem == 'NAT'}">
スクリプトレットを使用できますが、これは方法ではありません。現在、JSPファイル内のインラインスクリプレットまたはJavaコードは悪い習慣と見なされています。
JSTLについてもう少し読む必要があります。 ansokanInfoオブジェクトがリクエストスコープまたはセッションスコープにある場合、$ {ansokanInfo}のようなオブジェクト(toString()メソッド)を出力すると、いくつかの基本情報が得られます。 $ {ansokanInfo.pSystem}は、オブジェクトのgetterメソッドを呼び出す必要があります。これがすべて機能する場合、これを使用できます。
<c:if test="${ ansokanInfo.pSystem == 'NAT'}"> tataa </c:if>