JSP および JSF 式言語エレメントで Java キーワードを使用しない

この規則により、Java キーワードまたは EL 予約キーワードを含む名前が含まれている変数を含む JSP 式言語 (EL) エレメントにフラグを立てます。

WebSphere Application Server バージョン 8 以降、式言語プロセッサーによる検証はより厳しくなりました。EL 変数 ID は、それらに Java キーワードまたは EL 予約語が含まれていないことを確認するために検査されます。JSTL/EL スクリプトで使用される変数 ID に Java キーワードまたは EL 予約語のいずれかが含まれていると、JSP ファイルは変換されず、実行時に com.ibm.ws.jsp.translator.JspTranslationException がスローされます。

この規則は、現行セットの Java 予約キーワードのいずれかを含む変数が含まれているすべての式言語エレメントにフラグを立てます。

この規則は、変数内の JSP 予約語の使用にもフラグを立てます。

この問題は、JSP および Java コードを変更して予約キーワードの使用を除去することで解決できます。この変更があまりに広範囲に及ぶ場合は、バージョン 8 より前の振る舞いに戻すためのシステム・プロパティーが使用可能です。前の振る舞いに戻すには、JVM システム・プロパティー org.apache.el.parser.SKIP_IDENTIFIER_CHECK を、true の値に設定してください。

次の例では、
< span class="Code"> < span class= "indent2"> < /span> < c:if test=" ${not empty testObject}">
< span class= "indent2"> < /span> < c:choose>
< span class= "indent2"> < /span> < c:when test=" ${testObject.class.name eq 'SomeValue'}"> < /SPAN>

変数 testObject.class.name に Java キーワード class が含まれているため、式言語エレメント ${testObject.class.name eq 'SomeValue'} にフラグが立てられます。

修正しないと、この式により、以下のような実行時エラーが生成されます。

< コード> アプリケーション・エラー
SRVE0777E: Exception thrown by application class 'com.ibm.ws.jsp.translator.visitor.validator.ELValidator.validateElFunction:515'
com.ibm.ws.jsp.translator.JspTranslationException: JSPG0122E: Unable to parse EL function ${testObject.class.name eq 'SomeValue'}.

式言語処理が使用不可である場合、JSP ファイル内のエレメントにフラグは立てられません。

例えば、isELIgnored page ディレクティブが true に設定されていると、式言語処理が使用不可になります。この規則は、このディレクティブでマークされた JSP ファイル内のエレメントにフラグを立てません。

< code> <% @ ページ isELIgnored= "true " %> < /code>

式言語処理は、web.xml el-ignored エレメントを使用して使用不可にすることもできます。この例では、webIgnored.jsp がこの規則によってフラグが立てられなくなります。

< jsp-config>
< span class= "indent2"> < /span> < jsp-property-group>
<url-pattern>webIgnored.jsp</url-pattern>
<el-ignored>はい</el-ignored>
</jsp-property-group>
</jsp-config>

サーブレット・バージョン 2.3 以前では、式言語処理は Web モジュールで常に使用不可の状態です。

追加情報については、以下を参照してください。