- 浏览: 961712 次
- 性别:
- 来自: 江西上饶
文章分类
- 全部博客 (460)
- p.spring (56)
- p.maven (20)
- p.ant (17)
- p.jee (18)
- p.jse (33)
- p.ofbiz (31)
- p.软件工程 (8)
- p.struts2 (5)
- p.hibernate (5)
- linux (25)
- 设计模式 (2)
- p.javascript (11)
- 硬件 (1)
- p.jsp (2)
- p.windows批处理 (1)
- 操作系统问题 (5)
- 算法 (1)
- p.mysql (7)
- p.sql (5)
- p.c (1)
- google产品 (0)
- 内存 (1)
- p.struts (1)
- p.freemarker (7)
- p.css (4)
- p.log4j (10)
- p.html (3)
- 淘宝产品 (0)
- 其他 (3)
- 编译器 (0)
- svn (4)
- p.spring.security (11)
- 图形 (0)
- p.xml (1)
- p.ssh (0)
- p.jquery (4)
- p.jdbc (3)
- p.flex (0)
- p.c++ (0)
- p.c#Net (0)
- p.assembly (0)
- p.sqlserver (0)
- p.其他 (3)
- p.webwork (21)
- p.wap (12)
- p.cglib (1)
- p.jee服务器 (11)
- windows (2)
- p.iphone (1)
- p.java.分布式与集群 (2)
- p.ibatis (16)
- p.eclipse (5)
- 架构 (2)
- http协议 (5)
- 我的个人标准 (2)
- 多线程 (1)
- 奇怪问题 (5)
- p.jira (13)
- p.httpclient (1)
- 服务器.apache (11)
- 安全防范 (1)
- p.PODAM (1)
- p.junit (16)
- fop (2)
- 硬盘安装 (1)
- powerdesigner (0)
- 单元测试 (1)
- apache commons (4)
- tomcat+apache集群 (10)
- 各类诡辩 (1)
- 安卓 (8)
- qvod (1)
- java编程基础知识考试考点及答案 (0)
- 工作总结 (4)
- oracle (0)
- spring的util工具 (3)
- json (2)
- maven (3)
- jms (19)
- p.bat (3)
- hadoop (2)
- git (3)
- nginx (1)
- p.移动开发 (1)
- shiro (3)
- 游戏破解 (1)
- react-native (7)
- ios开发 (1)
- webmagic (6)
- socks5 (1)
最新评论
-
weituotian:
说的不好,没人看的
公司系统中的菜单功能和权限功能 -
石不易:
非常详细的注解~
绑定端口和IP,Listen 与VirtualHost指令 -
spring_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
spring mvc -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装 -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装
症状
使用freemarker 作为视图,输出中文就乱码
首先想到的是在视图的bean和config都设置为utf-8。
设置如下面的代码1。但是发现还是乱码。于是跟踪请求。在任何一个有接受request和response的地方,设置断点。
然后在变量如上图,那右击,Watch菜单,它会开一个表达式窗口Expressions。如图
在Expressions右击,添加获取请求字符集和回应字符集的表达式
request.getCharacterEncoding()
response.getCharacterEncoding()
当断点进入后发现request和response的字符集都是iso的。这是因为我使用的servlet-api.jar是使用tomcat里面的架包,它默认的架包是iso。因此我需要添加一个字符集的过滤器。
在网上查找,发现spring 已经提供了一个过滤器了。配置如代码2。
其中
encoding设置编码
forceEncoding,如果要设置response的字符集,一定需要添加这个参数,设置为true,否则,它不会对response设置字符集。由于我这里的response和request都是ISO,要设置两个的字符集。所以设置了这个属性
代码1:
<!-- 将ftl后缀的文件使用freemarker 摸版引擎解析 -->
<bean id="freemarkerViewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="prefix" value="" />
<property name="suffix" value=".ftl" />
<property name="contentType" value="text/html; charset=UTF-8" />
<property name="exposeRequestAttributes" value="false" />
<property name="exposeSessionAttributes" value="false" />
<property name="exposeSpringMacroHelpers" value="true" />
</bean>
<!-- 设置freemarker 解析参数 -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/view/ftl/" />
<property name="freemarkerSettings">
<props>
<prop key="template_update_delay">1</prop>
<prop key="defaultEncoding">UTF-8</prop>
<prop key="url_escaping_charset">UTF-8</prop>
<prop key="locale">zh_CN</prop>
<prop key="boolean_format">true,false</prop>
<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
<prop key="date_format">yyyy-MM-dd</prop>
<prop key="time_format">HH:mm:ss</prop>
<prop key="number_format">0.######</prop>
<prop key="whitespace_stripping">true</prop>
</props>
</property>
</bean>
代码2:
<filter>
<filter-name>setCharacter</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>setCharacter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
使用freemarker 作为视图,输出中文就乱码
首先想到的是在视图的bean和config都设置为utf-8。
设置如下面的代码1。但是发现还是乱码。于是跟踪请求。在任何一个有接受request和response的地方,设置断点。
然后在变量如上图,那右击,Watch菜单,它会开一个表达式窗口Expressions。如图
在Expressions右击,添加获取请求字符集和回应字符集的表达式
request.getCharacterEncoding()
response.getCharacterEncoding()
当断点进入后发现request和response的字符集都是iso的。这是因为我使用的servlet-api.jar是使用tomcat里面的架包,它默认的架包是iso。因此我需要添加一个字符集的过滤器。
在网上查找,发现spring 已经提供了一个过滤器了。配置如代码2。
其中
encoding设置编码
forceEncoding,如果要设置response的字符集,一定需要添加这个参数,设置为true,否则,它不会对response设置字符集。由于我这里的response和request都是ISO,要设置两个的字符集。所以设置了这个属性
代码1:
<!-- 将ftl后缀的文件使用freemarker 摸版引擎解析 -->
<bean id="freemarkerViewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="prefix" value="" />
<property name="suffix" value=".ftl" />
<property name="contentType" value="text/html; charset=UTF-8" />
<property name="exposeRequestAttributes" value="false" />
<property name="exposeSessionAttributes" value="false" />
<property name="exposeSpringMacroHelpers" value="true" />
</bean>
<!-- 设置freemarker 解析参数 -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/view/ftl/" />
<property name="freemarkerSettings">
<props>
<prop key="template_update_delay">1</prop>
<prop key="defaultEncoding">UTF-8</prop>
<prop key="url_escaping_charset">UTF-8</prop>
<prop key="locale">zh_CN</prop>
<prop key="boolean_format">true,false</prop>
<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
<prop key="date_format">yyyy-MM-dd</prop>
<prop key="time_format">HH:mm:ss</prop>
<prop key="number_format">0.######</prop>
<prop key="whitespace_stripping">true</prop>
</props>
</property>
</bean>
代码2:
<filter>
<filter-name>setCharacter</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>setCharacter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
发表评论
-
Spring 定时任务,cron表达式,@Scheduled cron表达式
2016-04-25 15:48 5303一个cron表达式有至少6 ... -
spring mvc list
2015-12-14 10:28 1292我使用这样无法传入 @requestMapping(" ... -
Unable to locate Spring NamespaceHandler for XML schema namespace
2015-09-23 14:00 2327org.springframework.beans.facto ... -
关于使用s.url jstl的上下文
2015-08-16 13:28 924比如 [@s.url '/'/]index.html?cote ... -
Spring 属性占位符配置器 PropertyPlaceholderConfigurer
2015-08-02 12:43 2088<!-- 属性配置文件读 ... -
FactoryBean接口
2014-09-30 14:05 911实现了FactoryBean接口的bean不是简单的一个bea ... -
国际化之MessageSourceAware和MessageSourceAccessor
2014-01-06 23:13 2859先看接口MessageSourceAware 该接口的注释中 ... -
spring 惯例优先原则
2013-07-22 09:46 1220惯例优先原则(convention over configur ... -
ant path匹配
2013-07-22 09:40 2180spring和ant path实现相关的主要类有两个 org. ... -
springmvc action方法中参数具有@ModelAttribute与不具有的区别
2012-12-14 09:36 4124在springmvc的参数解析中,发现具有@ModelAttr ... -
util包
2012-12-05 13:50 1116spring的util基本上都在springframework ... -
url,请求相关帮助类UrlPathHelper
2012-11-29 11:18 2527org.springframework.web.util.Ur ... -
整站国际化方案
2012-11-28 17:46 1115当前常见的实现方式,主要由两种方案实现 1.通过locale ... -
spring的三种注入方式
2012-11-20 17:30 18721.通过bean的property子元 ... -
spring AnnotationUtils 注解工具
2011-12-08 11:27 1307spring AnnotationUtils 注解工具 -
GenericCollectionTypeResolver,用于获取list或者map等元素的类型
2011-12-07 16:17 1314GenericCollectionTypeResolver,用 ... -
属性编辑器
2011-12-05 18:19 1085我自定义了一个类型,然后设置了一个属性编辑器,注册的class ... -
iframe下面的session问题
2011-12-04 19:52 5326在写iframe完成长连接获取上传状态的时候,有两次请求,一次 ... -
mvc之类的驱动原理
2011-12-01 09:34 1103<mvc:annotation-driven /> ... -
Couldn't access current invocation
2011-10-20 20:44 1901做了一个aop的日志记录器,但是在运行的时候出现了日志信息 服 ...
相关推荐
8. ViewResolver解析出具体视图,如JSP、Freemarker等。 9. DispatcherServlet根据解析的视图进行渲染,将模型数据填充到视图中。 10. 最后,DispatcherServlet响应用户请求。 【POST请求中文乱码处理】 POST请求...
【SpringMVC与jQuery实现Ajax功能详解】 Ajax(Asynchronous JavaScript ...在实际开发中,还可以结合其他技术和最佳实践,如Thymeleaf或FreeMarker作为视图技术,以及使用Ajax进行分页、搜索、表单验证等多种功能。
JAVAPMS是JAVA门户管理系统(JAVA Portal Management System)的简称,以SpringMVC+Spring+Hibernate+Freemarker+Html5+jQuery为技术核心架构,面向广大站长、软件开发者、程序爱好者、网页设计师,适用于个人站长、...
13. **视图技术**:SpringMVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等,允许开发者根据项目需求选择合适的方式展示结果。 14. **MVC注解驱动**:通过启用`@EnableWebMvc`或在配置文件中设置`...
- 字符编码问题:为避免乱码,可以设置过滤器`CharacterEncodingFilter`,确保请求和响应使用统一的字符编码。 4. **Controller到View的参数传递**: - Controller中处理业务逻辑后,通过ModelAndView对象或者...
- 支持多种视图技术,不仅限于JSP,还可以使用FreeMarker、Thymeleaf等。 - 与Spring框架紧密集成,可以利用IoC容器和AOP特性。 - 角色分工明确,降低了组件间的耦合。 - 提供灵活的请求资源映射策略。 3. **...
在这个"springMVC jar 包(包含java上传下载所需jar包)"中,你将找到一组完整的库,用于构建高效、灵活的 Web 应用程序。这个压缩包不仅包括了 Spring MVC 的核心库,还包含了支持文件上传和下载功能所需的依赖。 ...
- SpringMVC不局限于使用JSP作为视图技术,它可以支持多种视图技术,如FreeMarker、Thymeleaf或者直接返回JSON数据。 4. **请求资源映射策略**: - SpringMVC支持多种请求资源映射策略,可以灵活地配置URL与...
视图解析器根据返回的逻辑视图名解析出实际的视图,如JSP或Freemarker模板。模型AndView对象用于封装模型数据和视图信息。拦截器则可以对请求进行预处理和后处理,比如权限验证、日志记录等。 总之,Spring MVC提供...
1. **视图技术的多样性**:它支持JSP、FreeMarker、Thymeleaf等多种视图技术,让开发者可以根据项目需求灵活选择。 2. **与Spring生态的紧密集成**:Spring MVC可以无缝地利用Spring的IoC容器和AOP特性,实现依赖...
- **支持多种视图技术**:SpringMVC不仅支持JSP,还支持其他视图技术如FreeMarker、Thymeleaf等,提供了更多的选择。 - **与Spring框架的深度集成**:SpringMVC作为Spring框架的一部分,可以无缝地与其他Spring功能...
- 使用 InternalResourceViewResolver 或者 Thymeleaf、Freemarker 等模板引擎配置视图解析器。 - 规定视图名称到实际视图资源的映射规则。 **6. 显示登录结果** - 根据控制器返回的视图名称,DispatcherServlet...