现象
ajax请求结果正常
直接在浏览器中输入链接中文部分变问号(“???”)
相关代码
controller
@RequestMapping(value="/leftTree/select")
@ResponseBody
public String selectPlaceRelathionToProductType(){
List<Map<String,Object>> list = leftMenuService.selectPlaceRelathionToProductType();
return JsonUtils.objectToJson(list);
}
ajax
var url="/select.do";
$.ajax({
url : url,
dataType : 'json',
type : 'post',
data : {},
cache : false,
async : false,
success : function(data) {
var zNodes = data;
.....
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
return null;
}
});
参考网上方案
解决情况
- 方案一:参考上面网页内方案1即,注解方式(成功)
@RequestMapping(value="/leftTree/select",produces="text/html; charset=UTF-8")
- 方案二:上文中方案二(未成功,可能是情况不同)
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
- 方案三 直接返回对象(成功)
@RequestMapping("/leftTree/select")
@ResponseBody
public List<Map<String,Object>> selectPlaceRelathionToProductType(){
List<Map<String,Object>> list = leftMenuService.selectPlaceRelathionToProductType();
return list;
}