ftl idea 乱码
1 | <?xml version= "1.0" encoding= "UTF-8" ?><br><web-app xmlns= "https://jakarta.ee/xml/ns/jakartaee" <br> xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" <br> xsi:schemaLocation= "https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd" <br> version= "5.0" ><br> <servlet><br> <servlet-name>freemarker</servlet-name><br> <servlet- class >freemarker.ext.servlet.FreemarkerServlet</servlet- class ><br> <init-param><br> <param-name>TemplatePath</param-name><br> <param-value>/WEB-INF/ftl</param-value><br> </init-param><br> <init-param><br> <param-name>default_encoding</param-name><br> <param-value>UTF- 8 </param-value><br> </init-param><br><br> </servlet><br> <servlet-mapping><br> <servlet-name>freemarker</servlet-name><br> <url-pattern>*.ftl</url-pattern><br> </servlet-mapping><br><br></web-app><br> |
必须要增加这个红色框里面的代码才能保证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再来试试。
1 | < servlet >< br > < servlet-name >freemarker</ servlet-name >< br > < servlet-class >freemarker.ext.servlet.FreemarkerServlet</ servlet-class >< br > < init-param >< br > < param-name >TemplatePath</ param-name >< br > < param-value >/WEB-INF/ftl</ param-value >< br > </ init-param >< br > < init-param >< br > < param-name >DefaultEncoding</ param-name >< br > < param-value >UTF-8</ param-value >< br > </ init-param >< br ></ servlet > |
祝学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9404 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧