java - 获取 jasper 异常

标签 java jsp

从 Java 类在下面的映射中设置值并在请求中设置它。

Map<String,String> responseMap = new LinkedHashMap<String, String>();
responseMap.put("requestId", "test");
request.setAttribute("nomineeResponseMap", responseMap);

现在我尝试从jsp页面获取此请求,但无法从此 map 获取数据。

下面的代码是我在 JSP 页面中使用的。

来自 JSP 页面:

Object responseMap = request.getAttribute("nomineeResponseMap");
  if(responseMap instanceof LinkedHashMap) {
    Map<String, String> newMap = (LinkedHashMap) responseMap;
    System.out.println("yesss");
}

运行程序时遇到以下异常:

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 36 in the jsp file: /form/EDCPRequestSuccess.jsp
Generated servlet error:
The type Map is not generic; it cannot be parameterized with arguments <String, String>

An error occurred at line: 36 in the jsp file: /form/EDCPRequestSuccess.jsp
Generated servlet error:
Syntax error, parameterized types are only available if source level is 5.0

为什么我会遇到上述异常?

最佳答案

如果您的服务器正在使用 JDK 1.5 或更高版本运行。该问题是由错误的 JSP 编译器设置引起的。
对于 Tomcat 服务器,可以在 $TOMCAT_HOME/conf/web.xml 中找到该设置。如果 compilerSourceVMcompilerTargetVM 设置为 1.4 或更低版本,则会引发该错误。

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
        <param-name>compilerSourceVM</param-name>
        <param-value>1.4</param-value>
    </init-param>
    <init-param>
        <param-name>compilerTargetVM</param-name>
        <param-value>1.4</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
</servlet>

关于java - 获取 jasper 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38408671/

相关文章:

java - Spring Data JPA 只有一个组合键是自增问题

java - 无法使用 ModelDriven 拦截器执行 Struts 2 程序

java - 对象为空,但应用程序的行为就像不是

java - JSP抛出空指针异常

java - 如何正确配置这个Camel路由xml?

java - 如何使 HBase 主服务器和区域服务器进程绑定(bind)到公共(public) IP?

java - 日期不解析月份

java - 递归 move 和重命名文件和文件夹的 ANT 任务

java - 在 AEM 的 Servlet 中获取 JSP 输出

javascript - 来自 jsp 的 JSF 1.2 自定义组件 :include