jsp项目运行后页面报错
ARN:oejsh.ErrorHandler:qtp1335520301-21: EXCEPTION
org.apache.jasper.JasperException: /WEB-INF/views/include/_head.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)
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:275)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:107)
at org.apache.jasper.compiler.Validator$DirectiveVisitor.visit(Validator.java:135)
at org.apache.jasper.compiler.Node$PageDirective.accept(Node.java:571)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
at org.apache.jasper.compiler.Node$Root.accept(Node.java:464)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
at org.apache.jasper.compiler.Validator$DirectiveVisitor.visit(Validator.java:101)
at org.apache.jasper.compiler.Node$IncludeDirective.accept(Node.java:635)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
解决问题
原来是包含页面与被包含页面的@page指令里面的contentType不一致,仔细检查两个文件第一行的 @page,包含页面的是:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
被包含页面:
<%@ page language="java" contentType="text/html;charset=utf-8" %>
果然contentType里面内容不一样,把两个文件第一行的@page内容改为一致,再执行程序,运行通过。
建议
建议在项目里全量替换:将所有jsp页面都加上@page 头内容值要一致。
作者简洁
作者:小碗汤,一位热爱、认真写作的小伙,目前维护原创公众号:『我的小碗汤』,专注于写go语言、docker、kubernetes、java等开发、运维知识等提升硬实力的文章,期待你的关注。转载说明:务必注明来源(注明:来源于公众号:我的小碗汤,作者:小碗汤)