注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

让一切都逝去吧

排骨炖泥菜/猪肝炒苹果/鱼籽狗肉汤/狗头薏米汤

 
 
 

日志

 
 

spring mvc json返回中文乱码  

2013-06-19 10:57:57|  分类: spring mvc |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
      Spring的mvc视图,它通过使用Jackson的ObjectMapper类序列化model,并把当前请求呈现为JSON内容。
By default, the entire contents of the model map (with the exception of framework-specific classes) will be encoded as JSON. If the model contains only one key, you can have it extracted encoded as JSON alone via #setExtractValueFromSingleKeyModel.
默认情况,model的全部内容(spring框架特定的类会出现异常)将被编码成JSON。若model只包含一个key,你可以通过setExtractValueFromSingleKeyModel方法单独编码。
      项目在tomcat下正常,在weblogic下中文乱码(使用浏览器查看)。因为tomcat中可以配置返回body的编码跟url一样,并可以定义url编码为utf-8,这样就可以指定body的编码。而weblogic没有这样的配置。只能项目里指定
    <bean id="mappingJacksonJsonView" class="com.xxx.JacksonJsonView">
    <property name="contentType" value="application/json;charset=utf-8" />
    </bean>
或者可以在这个自定义的类中用代码声明
public class JsonView extends MappingJacksonJsonView {
public JsonView(){
this.setContentType("application/json;charset=utf-8");
this.setExtractValueFromSingleKeyModel(true);
}
protected Object filterModel(Map<String, Object> model) {
for(Map.Entry<String, Object> entry : model.entrySet()){
if(...)
return entry.getValue();
}
return super.filterModel(model);
}
}
上面无参构造方法,spring管理的类的话会自动调用。setExtractValueFromSingleKeyModel(true)方法作用上面说了,这个方法的注释如下:
/**
* Set whether to serialize models containing a single attribute as a map or whether to
* extract the single value from the model and serialize it directly.
* <p>The effect of setting this flag is similar to using {@code MappingJacksonHttpMessageConverter}
* with an {@code @ResponseBody} request-handling method.
* <p>Default is {@code false}.
*/
  评论这张
 
阅读(4208)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017