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

我收到了以下错误:

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. 

这是由于在tomcat 7默认情况下SKIP IDENTIFIER CHECKfunction是假的(在tomcat 6及以下版本中都是如此)并且我在正则表达式中使用“case”而case是标识符所以它抛出错误。

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

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

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

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

 -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true 

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

 STEP 1 : 

步骤1

 STEP 2 : 

第2步

 STEP 3 : 

第3步

干杯。 🙂

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

 SET CATALINA_OPTS=%CATALINA_OPTS% -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true 

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

 export CATALINA_OPTS="$CATALINA_OPTS -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true" 

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

我们还可以在tomcat_home目录/ bin下的catalina.sh文件中添加以下命令

CATALINA_OPTS = “ – Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK =真”

我将目前的应用程序迁移到Tomcat 7时遇到了同样的问题(jsf 1.2 with ice faces 1.8.2)。 我已经解决了它,包括一个名为setenv.bat的bat文件,其中包含以下内容。 ‘SET CATALINA_OPTS =%CATALINA_OPTS%-Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK = true’

我已将它包含在TomcatInstallationDirectory / bin中。

它是由catalina.bat文件读取的。 在下面的行’call“%CATALINA_BASE%\ bin \ setenv.bat”’。

因此我的jspx页面被正确呈现

我通过tomcat查看了以下文档:

https://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt

请发布您所做的所有解决方案

例如,如果您正在使用Eclipse,则必须将以下行添加到Servers文件夹中的catalina.properties,(在Package Explorer中查找它,并选择相应的Tomcat文件夹):

 org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true 

请记住,Eclipse使用不同的位置来配置而不是CATALINA原始目录。

值得一看Tomcat的属性页面, https://tomcat.apache.org/tomcat-7.0-doc/config/systemprops.html