이 규칙은 이름에 Java 키워드나 EL(Expression Language) 예약 키워드가 있는 변수를 포함한 JSP EL 요소를 플래그 지정합니다.
WebSphere Application Server 버전 8에서부터는, Expression Language 프로세서 유효성 검증이
보다 엄격해졌습니다. EL 변수 ID에 Java 키워드나 EL 예약어가
포함되지 않았는지 검사합니다. JSTL/EL 스크립트에 사용되는 변수 ID에 Java 키워드나 EL 예약어가
포함된 경우에는 JSP 파일이 변환되지 않고
런타임에 com.ibm.ws.jsp.translator.JspTranslationException이 처리됩니다.
이 규칙은 Java 예약 키워드의 현재 세트를 포함한 변수가 있는 Expression Language 요소를 플래그 지정합니다.
이 규칙은 변수의 JSP 예약어 사용도 플래그 지정합니다.
예약된 키워드를 사용하지 않도록 JSP 및 Java 코드를 수정하여 이 문제를
해결할 수 있습니다. 이 변경이 지나치게 광범위하면 시스템 특성을 사용하여
버전 8 이전 동작으로 되돌릴 수 있습니다. JVM 시스템 특성
org.apache.el.parser.SKIP_IDENTIFIER_CHECK의 값을
true로 설정하여 이전 동작으로 돌아가십시오.
${testObject.class.name eq 'SomeValue'}는
변수 testObject.class.name에 Java 키워드 class가
포함되어 있으므로 플래그 지정됩니다.
수정하지 않을 경우 이 표현식은 다음과 유사한 런타임 오류를 생성합니다.
Application Error
SRVE0777E: Exception thrown by application class 'com.ibm.ws.jsp.translator.visitor.validator.ELValidator.validateElFunction:515'
com.ibm.ws.jsp.translator.JspTranslationException:
JSPG0122E: EL 함수 ${testObject.class.name eq
'SomeValue'}를 구문 분석할 수 없습니다.
Expression Language 처리를 사용하지 않으면 JSP 파일의 요소에 플래그가 지정되지 않습니다.
예를 들어, isELIgnored
page 지시문이 true로
설정되면 Expression Language 처리가 사용되지 않습니다. 규칙은 이 지시문이 표시된 JSP 파일의 요소를 플래그 지정하지 않습니다.
web.xml el-ignored 요소를 사용하여 Expression Language 처리를
사용하지 않을 수도 있습니다. 예제에서 규칙은 webIgnored.jsp에 플래그를 지정하지 않습니다.
서블릿 버전 2.3 이하의 웹 모듈의 경우 Expression Language 처리가 항상 사용되지 않습니다.
추가 정보는 다음을 참조하십시오.