ftl idea 乱码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
version="5.0">
<servlet>
<servlet-name>freemarker</servlet-name>
<servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
<init-param>
<param-name>TemplatePath</param-name>
<param-value>/WEB-INF/ftl</param-value>
</init-param>
<init-param>
<param-name>default_encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>freemarker</servlet-name>
<url-pattern>*.ftl</url-pattern>
</servlet-mapping>
</web-app>
必须要增加这个红色框里面的代码才能保证ftl不乱码
请老师回答一下 一个servlet中为啥要设置两个init-param 初始化参数呢?
解决乱码看了好多问答,老师给的解决方案完全没用,希望老师尝试后再给解答
21
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小班
2021-06-23 18:00:17
同学你好,1、增加如下代码并不能完全保证不出现乱码,还会有其他因素的影响
2、在servlet中初始化参数可以设置多个,这里一个是配置ftl的路径的,一个配置编码的
3、编码是因为书写和解析时编码不一致导致的,所以并不能直接确定是由于哪里的编码不同导致的乱码问题,只能一点一点排查。
同学说的是页面中ftl文件展示在浏览器中的乱码吧
如果是,同学可以检查一下自己的servlet文件和ftl文件编码是不是UTF-8,以及在servlet中添加如下这个编码语句。
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
同学使用如下内容,修改后清理缓存,重新启动tomcat再来试试。
<servlet>
<servlet-name>freemarker</servlet-name>
<servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
<init-param>
<param-name>TemplatePath</param-name>
<param-value>/WEB-INF/ftl</param-value>
</init-param>
<init-param>
<param-name>DefaultEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</servlet>
祝学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星