java - 为什么(字符串)切换案例在 JSP 中不起作用
问题描述
我在一个动态的网络项目中工作。我需要根据你的女巫页面发布一些文字。所以我在我的 JSP 上做了这个:
<% ...
switch(str) {
case "one":
out.println("one");
break;
case "two":
out.println("two");
break;
case "three":
out.println("three");
break;
default:
out.println("no match");
} %>
但它会引发以下错误:
2020-11-01T19:47:59.994+0100|Grave: Error compiling file: /Users/davidzarzosomoreno/Documents/glassfish5/glassfish/domains/domain1/generated/jsp/TRIPLAN_VrInAJAX/org/apache/jsp/index_jsp.java
2020-11-01T19:47:59.996+0100|Advertencia: StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP
PWC6199: Generated servlet error:source value 1.5 is obsolete and will be removed in a future release
PWC6199: Generated servlet error: target value 1.5 is obsolete and will be removed in a future release
PWC6199: Generated servlet error: To suppress warnings about obsolete options, use -Xlint:-options.
PWC6197: An error occurred at line: 31 in the jsp file: /cabecera.jsp
PWC6199: Generated servlet error: strings in switch are not supported in -source 1.5 (use -source 7 or higher to enable strings in switch)
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:129)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:299)
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:392)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:453)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:627)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1540)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:119)
...
这很奇怪,因为如果我这样做:
<% ...
switch(int) {
case 1:
out.println(1);
break;
case 2:
out.println(2);
break;
case 3:
out.println(3);
break;
default:
out.println("no match");
} %>
它可以正常工作。你知道我的错误在哪里吗?谢谢
解决方案
推荐阅读
- swift - 如何从 Kotlin 移动平台访问 Array 到 iOS 或 Android?
- sql - 如何在 SQL Server 中创建一天中的时间段
- calculated-columns - Spotfire 根据每个组的日期计算单个列中值的差异
- c++ - 在 gradle c++ 项目中配置 C++ 标准?
- c++ - Eigen C++:为稀疏矩阵映射原始缓冲区
- python - 值错误:尝试相对导入超出顶级包
- c++ - 为什么我的 MPI 并行程序打印两次?
- django - 将数据传递到 django templae 中的表单
- javascript - 每个节点的 D3 unicode + d.name
- r - 求 R 中的累积回报