原因:Easyui中form提交,对于success方法就是个比较纠结的问题。或者说,对于Spring中的@ResponseBody返回的Json就是个比较麻烦的问题。
首先说说@ResponseBody的作用,这个注解将返回值转化为json字符串,而且在返回时添加response头信息,类似于设置 response.setContentType("application/json; charset=UTF-8");"),但是json这玩意儿IE不认识,就当做文件处理了,也就会弹出“是否下载”的对话框来。
既然是@ResponseBody注解上的问题,也就是说,在@ResponseBody对应的controller里面设置的头部信息肯定会在外面被覆盖掉。还好Spring确实考虑了这一点。
<mvc:annotation-driven ignoreDefaultModelOnRedirect="true"> <!-- 这里配置IE的json格式兼容性 --> <mvc:message-converters register-defaults="false"> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" /> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" /> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" /> </bean> </mvc:message-converters> </mvc:annotation-driven>