Esta regla marca los elementos de lenguaje de expresión JSP que contienen variables con nombres que contienen palabras clave Java o palabras clave reservadas de lenguaje de expresión.
A partir de WebSphere Application Server Versión 8, la validación del procesador de
lenguaje de expresión pasó a ser más estricta. Se comprueban los identificadores de
variables de lenguaje de expresión para asegurarse de que no contengan palabras clave
Java ni palabras reservadas de lenguaje de expresión. Si un identificador de variable utilizado en un script de JSTL/EL incluye palabras
clave Java o palabras reservadas de lenguaje de expresión, el archivo JSP no se
convertirá y se emite una excepción com.ibm.ws.jsp.translator.JspTranslationException durante la ejecución.
Esta regla marcará cualquier elemento de lenguaje de expresión que contenga variables que incluyan cualquiera de las palabras clave reservadas Java.
La regla también marcará el uso de palabras reservadas de JSP en variables.
El problema se puede resolver modificando el JSP y el código Java
para eliminar el uso de las palabras clave reservadas. Si este cambio es demasiado
grande, hay una propiedad de sistema disponible para revertir al comportamiento
anterior de la Versión 8. Establezca la propiedad de sistema de JVM
org.apache.el.parser.SKIP_IDENTIFIER_CHECK
en un valor de
true
para volver al comportamiento anterior.
${testObject.class.name eq
'SomeValue'} está marcado porque la variable
testObject.class.name contiene la palabra clave class de
Java.
Si no se corrige la expresión, producirá un error de ejecución similar a:
Si el proceso de lenguaje de expresión está inhabilitado, los elementos contenidos en el archivo JSP no se marcarán.
Por ejemplo, el proceso de lenguaje de expresión está inhabilitado cuando la
directiva page isELIgnored está definida como
true. La regla no marcará los elementos de un archivo JSP que estén marcados con esta directiva.
El proceso de lenguaje de expresión también se puede inhabilitar utilizando el
elemento el-ignored de web.xml. Este ejemplo, la regla no marcará
webIgnored.jsp.
El proceso de lenguaje de expresión está siempre inhabilitado para módulos web en servlet versión 2.3 o anterior.
Para obtener información adicional, consulte