我有一个jsp。我将字符集从"charset=UTF-8"
更改为"charset=ISO-8859-1"
。
我改变了这个旧的:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
改为新:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="UTF-8"%>
然后出现了这个错误:
[3/10/16 11:05:37:985 IST] 000000ba WebApp E [Servlet Error]-[/WEB-INF/views/issuerLocaleMap.jsp]: com.ibm.ws.jsp.translator.JspTranslationException: JSPG0228E: Exception caught while translating /WEB-INF/views/issuerLocaleMap.jsp: error in statically included file
/WEB-INF/views/header.jsp(1,1) --> JSPG0120E: Illegal to specify different values for pageEncoding attribute and configuration element for matching URI pattern. directive: "[ISO-8859-1]" configuration: "[UTF-8]"
at com.ibm.ws.jsp.translator.visitor.validator.ValidateJspVisitor.visitPageDirectiveStart(ValidateJspVisitor.java:202)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:153)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:309)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:139)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.visit(JspVisitor.java:121)
at com.ibm.ws.jsp.translator.JspTranslator.processVisitors(JspTranslator.java:127)
at com.ibm.ws.jsp.translator.utils.JspTranslatorUtil.translateJsp(JspTranslatorUtil.java:230)
at com.ibm.ws.jsp.translator.utils.JspTranslatorUtil.translateJspAndCompile(JspTranslatorUtil.java:114)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.translateJsp(AbstractJSPExtensionServletWrapper.java:502)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper._checkForTranslation(AbstractJSPExtensionServletWrapper.java:429)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.checkForTranslation(AbstractJSPExtensionServletWrapper.java:291)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:146)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:321)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.cache.servlet.ServletWrapper.serviceProxied(ServletWrapper.java:282)
<br>
我从http://www.satollo.net/jsp-and-the-content-type-charset-and-the-page-encoding-attribute
了解了这一点 这两个编码是独立的,您可以使用UTF-8
将JSP保存在磁盘上,并要求容器使用另一个字符集与浏览器进行通信,例如ISO-8859-15
那么这个错误背后的原因是什么?
答案 0 :(得分:0)
如果包含的JSP中的pageEncoding
指令与主JSP中指定的值不同,则Servlet容器会引发错误。 (contentType
指令相同)。