Spring MVC + easyui 的问题急急...
Spring MVC + easyui 在的项目,程序在IE浏览器下,程序通过ajaxsubmit提交上传文件,控制器处理服务器端文件保存并返回文件名的JSON数据。但客户端一接收这个JSON就跳“下载保存文件”的对话框。但在Firefox下对是正常的,
Srping-servlet.xml 里的配置
<!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
Controller层里的写法:
@RequestMapping(value = "/add", method = RequestMethod.POST)
public @ResponseBody
Json add(EnterpriseModel model) {
Enterprise bean = new Enterprise();
BeanUtils.copyProperties(model, bean);
// bean.setCreatedate(new Date());
Json jn = new Json();
try {
Enterprise e = enterpriseService.save(bean);
logger.info(e.getId());
jn.setSuccess(true);
jn.setMsg("保存成功!");
BeanUtils.copyProperties(e, model);
jn.setObj(model);
} catch (Exception e) {
jn.setMsg(e.getMessage());
}
return jn;
}
页面层调用:
handler : function() {
$('#pages_sys_enterprise_addForm').form('submit',{
url:'${pageContext.request.contextPath}/enterprise/add',
success:function(data){
var obj = jQuery.parseJSON(data);
if(obj.success){
$('#pages_console_sys_enterprise').datagrid('insertRow',{
index:0,
row:obj.obj
});
$('#pages_sys_enterprise_addDialog').dialog('close');
}
$.messager.show({
title : '提示',
msg : obj.msg
});
}
});
}
easyui spring mvc json --------------------编程问答-------------------- 在Firefox运正常,在IE下就跳“下载保存文件”的对话框,求大神解,急急...... --------------------编程问答-------------------- 对ie而言application/json是识别不了的MIME类型,所以就当成文件下载下了,可以尝试在ie下改为text/html。 --------------------编程问答-------------------- 和你遇到同样问题,配置了spring没有起到作用,不知是哪里出问题
--------------------编程问答-------------------- 你的spring DispatcherServlet配置了什么结尾?,
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" >
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
--------------------编程问答-------------------- 我也遇到了这个问题,springmvc中加入<mvc:annotation-driven />后,IE就提示下载。
去掉后就没有此问题。
但我使用了JSR303 annotation ,还必须得加上这个<mvc:annotation-driven />
同求 该怎么解决啊.. --------------------编程问答-------------------- 浏览器不兼容的问题很恶心。。。。出那么多浏览器,开发人员真受罪 --------------------编程问答-------------------- spring MVC 会优先通过http请求header的Accept标记来决定是什么转换类来处理@responsebody注解,找不到才会走默认。
用IE查看下你的的AJAX请求,header的Accept值是对的么? --------------------编程问答-------------------- 我也用的easyui,设置一下
<property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
补充:Java , Web 开发