解决JSP中include指令导入的tag HTML文件出现乱码问题
问题描述
在JSP页面中导入了自定义的标签文件出现乱码,这里涉及到四个文件分别是:
/app07a/WebContent/includeDemoTagTest.jsp
这个jsp
是入口页面/app07a/WebContent/WEB-INF/tags/includeDemoTag.tag
,includeDemoTagTest.jsp
中引用这个个标签文件。/app07a/WebContent/WEB-INF/tags/included.html
,includeDemoTag.tag
中引用这个html
文件。/app07a/WebContent/WEB-INF/tags/included.tagf
,includeDemoTag.tag
中引用引入这个tagf
文件。`
详细代码
/app07a/WebContent/includeDemoTagTest.jsp
:
1 | <html> |
/app07a/WebContent/WEB-INF/tags/includeDemoTag.tag
:
1 | <strong>以下是included.html的内容:</strong> |
/app07a/WebContent/WEB-INF/tags/included.tagf
:
1 | <% |
/app07a/WebContent/WEB-INF/tags/included.html
:
1 | <table> |
浏览器显示效果
通过URL:
http://localhost:8080/app07a/includeDemoTagTest.jsp访问,浏览器将显示乱码,如下图所示:
解决乱码
解决jsp文件乱码
在JSP文件第一行加入如下page指令:
1 | <%@ page language="java" contentType="text/html; charset=UTF-8" |
可以解决JSP文件中的乱码.现在浏览器显示效果如下:
解决jsp中引入的tag文件出现的乱码
在tag文件第一行中加入如下tag指令:
1 | <%@ tag pageEncoding="utf-8"%> |
即可解决乱码,浏览器显示效果:
解决tag文件中引入的tagf文件出现的乱码
类似tag文件,在tagf文件中的第一行加入如下tag指令,可以解决乱码:
解决tag文件中引入的html文件中出现的乱码
我试了好多办法,都无法修改html文件的乱码,我的做法是:不使用html文件,也就是把included.html
这个html文件改成included2.tagf
tagf文件,然后利用tag指令来设置编码.
修改后的代码
includeDemoTagTest.jsp
1 | <%@ page language="java" contentType="text/html; charset=UTF-8" |
includeDemoTag.tag
1 | <!-- 设置tag文件的编码 --> |
included.tagf
1 | <%@ tag pageEncoding="utf-8"%> |
included2.tagf
1 | <%@ tag pageEncoding="utf-8"%> |