springmvc中如何做到统一对jsp页面统一设置contentType:UTF-8?

NewMoons 2014-08-06 10:06:08
为统一jsp页面编码,需要在jsp页面中加一句:<%@ page language="java" contentType="text/html; charset=UTF-8"%>
我记得以前用struts2的时候在配置文件做了些设置,jsp页面就不用刻意设置上面这句话,增强了系统的灵活性,否则以后一旦改动编码岂不每个页面都要设置一次。

最近改成springmvc,怎么配置都不灵了。比如利用filter
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


请教如何做到我的需求。
...全文
571 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
whos2002110 2014-08-06
  • 打赏
  • 举报
回复
引用 5 楼 NewMoons 的回复:
3楼,你说的这个方法我已经试过了,include方法我可以接受,至少通用性已经很强了,但关键是没起效果,这个我也很奇怪。你可以亲自试试,确实没用。不知道是不是因为我用了tiles的缘故,但应该不是。 4楼,你的解决办法并不是我的需要,我是为了以后扩展方便,比如修改utf-8为gbk时不用把历史页面全部再改一遍,而且尽量要优雅,一句话:能否不加任何代码实现我的需求,请仔细看提问的描述,谢谢。
这可能是你自己的问题, 我项目中一直是这样用的, 我刚才试了一下也确实没问题。 我是在common.jsp中写 <%@ page contentType="text/html;charset=UTF-8" pageEncoding="utf-8" %> 在每个单独的页面写 <%@ page pageEncoding="utf-8" %> <%@ include file="/WEB-INF/jsp/common/common.jsp"%> 这里的pageEncoding="utf-8“是在每个页面必需要加的。 当我把common.jsp里面的contentType去掉或者换成其它,我的页面就乱码了。 你参考下
NewMoons 2014-08-06
  • 打赏
  • 举报
回复
3楼,你说的这个方法我已经试过了,include方法我可以接受,至少通用性已经很强了,但关键是没起效果,这个我也很奇怪。你可以亲自试试,确实没用。不知道是不是因为我用了tiles的缘故,但应该不是。 4楼,你的解决办法并不是我的需要,我是为了以后扩展方便,比如修改utf-8为gbk时不用把历史页面全部再改一遍,而且尽量要优雅,一句话:能否不加任何代码实现我的需求,请仔细看提问的描述,谢谢。
S117 2014-08-06
  • 打赏
  • 举报
回复
你去修改下JSP的模板那,把那些都加进去,这样再建JSP时就自动带上了!
whos2002110 2014-08-06
  • 打赏
  • 举报
回复
contentType 可以通过include从一个公共jsp加进来, 但include这个页面也是需要没个jsp都写。 而且这个方法对于pageEncoding属性还没用,还是得一个个写。
NewMoons 2014-08-06
  • 打赏
  • 举报
回复
必须每页都加吗?那以后万一统一修改编码,每页改起来不是很痛苦? 我也知道可以用<%= encoding %>,用拦截器统一实现,但在页面里弄个 <%@ page language="java" contentType="text/html; charset=<%= encoding %>"%> 始终是不爽,因为我使用tiles实现了页面组合,我想让最终的开发人员不要去处理这些千篇一律的东西。 页面要尽量干净,优雅 :)
tony4geek 2014-08-06
  • 打赏
  • 举报
回复
是需要的啊 需要加的啊。
whos2002110 2014-08-06
  • 打赏
  • 举报
回复
引用 7 楼 NewMoons 的回复:
6楼,谢谢。我建议你用下面方法实现,更优雅。 在每个页面写下面这句话,不用include,实际上你没解决问题,因为还是要在每个页面写pageEncoding=utf-8,改编码的时候还得全来一遍。 <%@ page contentType="text/html;charset=<%= encoding %>" pageEncoding="<%= encoding %>" %> 其中encoding可以通过filter赋予一个全局参数,这个全局参数可通过程序读取配置文件,实现了最大灵活性。
NewMoons 2014-08-06
  • 打赏
  • 举报
回复
6楼,谢谢。我建议你用下面方法实现,更优雅。 在每个页面写下面这句话,不用include,实际上你没解决问题,因为还是要在每个页面写pageEncoding=utf-8,改编码的时候还得全来一遍。 <%@ page contentType="text/html;charset=<%= encoding %>" pageEncoding="<%= encoding %>" %> 其中encoding可以通过filter赋予一个全局参数,这个全局参数可通过程序读取配置文件,实现了最大灵活性。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧