9月21

如何在Filter中改变request的locale设置

| |
02:22编程杂谈  From: 本站原创
我们在HttpServletRequest中我们可以通过getLocale()得到用户请求的locale,但是如果你希望手动改变用户的locale设置的话却没有setLocale方法,那么有什么办法来改变request的locale设置吗呢?54

答案是可以写一个HttpServletRequestWrapper,通过其中的getLocale()方法和getLocales()方法来改变用户请求的locale设置。首先我们来写一个这样的类:


我们可以看到在getLocale()方法中我们得到request参数中的locale的值(想想用户请求的地址是http://www.hecks.tk?locale=zh_CN)。之后我们需要写一个filter,并使用LocaleRequestWrapper:

可以看到,在其中的doFilter()方法中,如果请求的参数中含有locale的值,那么我们就会使用这个刚才设定的LocaleRequestWrapper。

写好Java代码之后,为了让我们的Filter能够生效,还需要在web.xml中配置对应的filter和filter-mapping:



来源:Heck's Blog
地址:https://www.heckjj.com/filter-locale-httpservletrequest/
转载时须以链接形式注明作者和原始出处及本声明,否则将追究法律责任,谢谢配合!
阅读(1974) | 评论(0) | 引用(0)