今天提取jsp页面公共的代码时,遇到了很傻的错误,如下:
org.apache.jasper.JasperException: /WEB-INF/include/user_header.jsp (line: 1, column: 2) Page directive: illegal to have multiple occurrences of contentType with different values (old: text/html ; charset=UTF-8, new: text/html; charset=UTF-8) org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:443) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:237) org.apache.jasper.compiler.Validator$DirectiveVisitor.visit(Validator.java:135) org.apache.jasper.compiler.Node$PageDirective.accept(Node.java:589) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2392) org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2444) org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2450) org.apache.jasper.compiler.Node$Root.accept(Node.java:474) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2392) org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2444) org.apache.jasper.compiler.Validator$DirectiveVisitor.visit(Validator.java:101) org.apache.jasper.compiler.Node$IncludeDirective.accept(Node.java:653) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2392) org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2444) org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2450) org.apache.jasper.compiler.Node$Root.accept(Node.java:474) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2392) org.apache.jasper.compiler.Validator.validateDirectives(Validator.java:1805) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:196) org.apache.jasper.compiler.Compiler.compile(Compiler.java:374) org.apache.jasper.compiler.Compiler.compile(Compiler.java:354) org.apache.jasper.compiler.Compiler.compile(Compiler.java:341) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:662) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:364) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
原来是包含页面与被包含页面的@page指令里面的contentType不一致,多一个空格都不行。
包含页:<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
被包含页: <%@ page language=“java” contentType=“text/html ; charset=UTF-8”
pageEncoding=“UTF-8”%>