【问题标题】:String is not working with Switch case in JSP with java 7 and Tomcat 7字符串不适用于带有 java 7 和 Tomcat 7 的 JSP 中的 Switch 案例
【发布时间】:2015-09-05 11:29:10
【问题描述】:

我正在使用 jdk1.7.0 和 tomcat 7.0.27

带有字符串参数的 switch case 程序在 JAVA 中运行良好,但同一程序在 JSP 中无法运行。

发生错误:“无法打开字符串类型的值 源级别低于 1.7。仅可转换的 int 值或枚举常量 被允许”

解决此问题的任何建议。

【问题讨论】:

  • 可能与项目设置有关。如果您使用 eclipse,则有一个设置更改兼容版本。即使你有 1.7,你也可以在那里设置“1.6”。因此,请检查项目“项目-> 属性-> Java 编译器-> 编译器合规性级别”。 1.6.可以在那里使用
  • 您应该避免在 JSP 中使用 Java。更适合 JSTL,这里有一个类似 switch 语句的 jstl 示例here
  • 正如它所说,字符串值不能有switch,为什么不更新JDK和tomcat?

标签: java jsp tomcat


【解决方案1】:

显然,您必须指定编译 JSP 时应使用的 Java 版本。

在 tomcat/conf/web.xml 中添加这个 compilerTargetVM init-param(这里我的目标是 Java 8):

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
        <param-name>fork</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>xpoweredBy</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>compilerTargetVM</param-name>
        <param-value>1.8</param-value>
    </init-param>      
    <load-on-startup>3</load-on-startup>
</servlet>

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 2013-09-20
    • 2015-05-25
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多