表达式语言在tomcat 7中跳过标识符检查

com*_*mit 6 java eclipse tomcat

我收到以下错误:

SEVERE: Servlet.service() for servlet jsp threw exception
javax.el.ELException: The identifier [case] is not a valid Java identifier as required by section 1.19 of the EL specification (Identifier ::= Java language identifier). This check can be disabled by setting the system property org.apache.el.parser.SKIP_IDENTIFIER_CHECK to true.
Run Code Online (Sandbox Code Playgroud)

这是由于在tomcat 7默认情况下SKIP IDENTIFIER CHECK功能是假的(在tomcat 6及以下版本中都是如此)我在正则表达式中使用"case"而case是标识符所以它会抛出错误.

我找到了以下解决方案: javax.el.E​​LException:标识符[return]不是有效的Java标识符

但它对我不起作用,因为我不想在我的代码中进行更改.所以我想要解决方案将tomcat 7配置为SKIP IDENTIFIER CHECK为true.

即使经过大量的谷歌搜索,我也没有办法做到这一点.我正在使用eclipse juno和tomcat 7,请帮我看看.

com*_*mit 19

终于得到了eclipse的解决方案.将以下行添加到我指定的位置

-Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true
Run Code Online (Sandbox Code Playgroud)

请查看以下一步一步的图像

STEP 1 :
Run Code Online (Sandbox Code Playgroud)

步骤1

STEP 2 :
Run Code Online (Sandbox Code Playgroud)

第2步

STEP 3 :
Run Code Online (Sandbox Code Playgroud)

第3步

干杯.:)


Mar*_*mas 5

在CATALINA_HOME/bin中创建一个setenv.[bat | sh]文件(即与所有其他脚本一起)并在该文件中设置系统属性.在Windows上,您将创建setenv.bat,其中包含以下内容:

SET CATALINA_OPTS=%CATALINA_OPTS% -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true
Run Code Online (Sandbox Code Playgroud)

在Linux上,您将使用以下内容创建setenv.sh:

export CATALINA_OPTS="$CATALINA_OPTS -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true"
Run Code Online (Sandbox Code Playgroud)

您可以重复这些行(更改系统属性名称)以在同一个setenv.[bat | sh]文件中设置多个系统属性.