- 浏览: 62828 次
- 性别:
- 来自: 南宁
最新评论
-
diwuci:
用response.setContentType(" ...
spring mvc 系列3 返回JSON以及文件上传 -
dickluo:
得花时间好好看下代码了 多谢
spring mvc 系列1 环境配置 -
muqingren:
这个学习了,歇息
spring mvc 系列3 返回JSON以及文件上传 -
JetMah:
Jophy 写道
@RequestMapping(pa ...
spring mvc 系列3 返回JSON以及文件上传 -
LifeFree:
LZ 1.的实现,貌似有笔误。
应该类似:
param = ...
一个小细节现实后的蛋疼结果。
先来看下spring mvc提供返回为json数据的注解
返回头部content-type为:application/json
文件上传:
EXT from 如果提交时添加:fileUpload: true 也就是文件上传时,要求返回的响应头部content-type为:text/html,而@ResponseBody返回的响应头部为:application/html 这时浏览器会要求选择打开XX文件的选项,如要防止此种情况产生,必须修改返回类型为:text/html 用@ResponseBody 本人还没找到解决方法,如有高人,请亮下方法,呵呵。
富文本编辑器本人用的是FCK。配置见 web.xml
根目录:WebRoot/fckeditor,
在EXT中,用的是html方式引入:
var htmleditorstr = '<div>' +
'<input type="hidden" id="giDescription___Config" value="" style="display:none" />' +
'<iframe name="giDescription___Frame" id="giDescription___Frame" ' +
'src="../fckeditor/editor/fckeditor.html?InstanceName=giDescription" ' +
'width="100%" height="400px″ frameborder="0″ scrolling="no"></iframe></div>';
没必要那么麻烦,直接用
那个示例就是解决方法啊。
非常感谢 Jophy 童鞋, 问题解决了。
据说在 json 转换配置文件里面添加一些接受的返回类型就可以了,具体没有深究,改天有空先,呵呵。
/** * * @功能模块: add * @方法说明: 添加一个对象 * @version: 1.0 * @param goodsType * GoodsTypeModel * @return Object spring 自动转换成 json 数据 * @throws */ @RequestMapping(params = "method=add") @ResponseBody public Object add(@ModelAttribute("goodsType") GoodsTypeModel goodsType) { return this.goodsTypeService.add(goodsType);// 返回的对象为:GoodsTypeModel }
返回头部content-type为:application/json
文件上传:
/** * * @功能模块: add * @方法说明: 处理 method=add 请求, 添加商品信息 * @version: 1.0 * @param goodsInfo * 商品信息对象,由spring自动获取 * @param model * @return ModelMap 由spring自动生成json数据 * @throws IOException * @throws */ @RequestMapping(params = "method=add") //@ResponseBody public void add(@ModelAttribute("goodsInfo") GoodsInfoModel goodsInfo, HttpServletResponse response) throws IOException { if (!goodsInfo.getMpFile().isEmpty()) { goodsInfo.setGiImg(FileUploadUtil.saveFileUpload(goodsInfo.getMpFile(), GoodsInfoModel.DEFAULT_FILE_UPLOAD_DIR)); } this.goodsInfoService.add(goodsInfo); //return this.goodsInfoService.add(goodsInfo); // EXT 文件上传时,要返回的头部信息类型为 text/html, // 而用@ResponseBody返回的头部信息为application/json所以自动转换类型 // 由于本人能力有限,不知道如果要用@ResponseBody的时候怎么转换,呵呵 JsonUtil.printJSON(response, new Result()); } /* * 多文件上传时,请使用:DefaultMultipartHttpServletRequest public String add(@ModelAttribute("goodsInfo") GoodsInfoModel goodsInfo, DefaultMultipartHttpServletRequest multipartRequest){ List<MultipartFile> mpFiles = multipartRequest.getFiles("mpFile"); String fileNames = null; for(MultipartFile mpFile : mpFiles){ if( ! mpFile.isEmpty()){ if(fileNames!=null){ fileNames += "," + FileUploadUtil.saveFileUpload(mpFile, GoodsInfoModel.DEFAULT_FILE_UPLOAD_DIR); }else{ fileNames = FileUploadUtil.saveFileUpload(mpFile, GoodsInfoModel.DEFAULT_FILE_UPLOAD_DIR); } } } goodsInfo.setGiImg(fileNames); this.goodsInfoService.add(goodsInfo); return "redirect:/Product.do?method=list"; }*/
EXT from 如果提交时添加:fileUpload: true 也就是文件上传时,要求返回的响应头部content-type为:text/html,而@ResponseBody返回的响应头部为:application/html 这时浏览器会要求选择打开XX文件的选项,如要防止此种情况产生,必须修改返回类型为:text/html 用@ResponseBody 本人还没找到解决方法,如有高人,请亮下方法,呵呵。
富文本编辑器本人用的是FCK。配置见 web.xml
根目录:WebRoot/fckeditor,
在EXT中,用的是html方式引入:
var htmleditorstr = '<div>' +
'<input type="hidden" id="giDescription___Config" value="" style="display:none" />' +
'<iframe name="giDescription___Frame" id="giDescription___Frame" ' +
'src="../fckeditor/editor/fckeditor.html?InstanceName=giDescription" ' +
'width="100%" height="400px″ frameborder="0″ scrolling="no"></iframe></div>';
- TestSpringMVC.part1.rar (8 MB)
- 下载次数: 1614
- TestSpringMVC.part2.rar (5.4 MB)
- 下载次数: 729
评论
13 楼
diwuci
2017-03-14
用response.setContentType("text/html");是可以解决的
另外一种方式继续使用@ResponseBody 也可以,在@RequestMapping后面加上produces = "text/html;charset=utf-8"解决
@RequestMapping(value="add",method=RequestMethod.POST, produces = "text/html;charset=utf-8")
@ResponseBody
public String add()
另外一种方式继续使用@ResponseBody 也可以,在@RequestMapping后面加上produces = "text/html;charset=utf-8"解决
@RequestMapping(value="add",method=RequestMethod.POST, produces = "text/html;charset=utf-8")
@ResponseBody
public String add()
12 楼
muqingren
2011-03-16
这个学习了,歇息
11 楼
JetMah
2011-03-07
Jophy 写道
@RequestMapping(params = "method=login") public ResponseEntity<String> doFirst(@RequestParam("u") String u,@RequestParam("p") String p,HttpSession session,ModelMap model){ HttpHeaders headers = new HttpHeaders(); MediaType mt=new MediaType("text","html",Charset.forName("gbk")); headers.setContentType(mt); ResponseEntity<String> re=null; String return = new String("test"); re=new ResponseEntity<String>(return,headers, HttpStatus.OK); return re; }这样可以自定义 返回的响应头部content-type
没必要那么麻烦,直接用
@RequestMapping(params = "method=add") @ResponseBody public String add(@ModelAttribute("goodsInfo") GoodsInfoModel goodsInfo, HttpServletResponse response) throws IOException { // ... return "{success:true}"; }
10 楼
joknm
2010-12-30
看回复呀,回复里面不是有解决方案吗?
9 楼
jiajiafucs
2010-12-29
哈哈,解决了,
public void importData(@RequestParam("file") MultipartFile file,HttpServletResponse response,ModelMap modelMap){
int num=0;
try{
if(!file.isEmpty()){
// 获得inputstream
InputStream inputstream = file.getInputStream() ;
num = getXlsData(inputstream);
inputstream.close();
file=null;
}
String msg = "没有数据";
if(num>0){
msg = "导入成功";
}
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("{success:true,msg:'"+msg+"'}");
}catch(Exception e){
e.printStackTrace();
}
}
public void importData(@RequestParam("file") MultipartFile file,HttpServletResponse response,ModelMap modelMap){
int num=0;
try{
if(!file.isEmpty()){
// 获得inputstream
InputStream inputstream = file.getInputStream() ;
num = getXlsData(inputstream);
inputstream.close();
file=null;
}
String msg = "没有数据";
if(num>0){
msg = "导入成功";
}
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("{success:true,msg:'"+msg+"'}");
}catch(Exception e){
e.printStackTrace();
}
}
8 楼
joknm
2010-10-22
lshoo 写道
楼上怎么解决的,在大家分享一下!我也要弄这个。
那个示例就是解决方法啊。
7 楼
lshoo
2010-10-20
楼上怎么解决的,在大家分享一下!我也要弄这个。
6 楼
joknm
2010-10-13
Jophy 写道
@RequestMapping(params = "method=login") public ResponseEntity<String> doFirst(@RequestParam("u") String u,@RequestParam("p") String p,HttpSession session,ModelMap model){ HttpHeaders headers = new HttpHeaders(); MediaType mt=new MediaType("text","html",Charset.forName("gbk")); headers.setContentType(mt); ResponseEntity<String> re=null; String returnString = new String("test"); re=new ResponseEntity<String>(returnString, headers, HttpStatus.OK); return re; }这样可以自定义 返回的响应头部content-type
非常感谢 Jophy 童鞋, 问题解决了。
5 楼
Jophy
2010-10-13
@RequestMapping(params = "method=login") public ResponseEntity<String> doFirst(@RequestParam("u") String u,@RequestParam("p") String p,HttpSession session,ModelMap model){ HttpHeaders headers = new HttpHeaders(); MediaType mt=new MediaType("text","html",Charset.forName("gbk")); headers.setContentType(mt); ResponseEntity<String> re=null; String return = new String("test"); re=new ResponseEntity<String>(return,headers, HttpStatus.OK); return re; }这样可以自定义 返回的响应头部content-type
4 楼
niyong
2010-10-13
中文容易出现乱码
3 楼
eyeieye
2010-10-12
看 AnnotationMethodHandlerAdapter messageConverters
2 楼
joknm
2010-10-12
oakeye 写道
这问题我也遇到 不知道怎么解决
他会在生成的json成功信息的前后加上<pre></pre>
他会在生成的json成功信息的前后加上<pre></pre>
据说在 json 转换配置文件里面添加一些接受的返回类型就可以了,具体没有深究,改天有空先,呵呵。
1 楼
oakeye
2010-10-12
这问题我也遇到 不知道怎么解决
他会在生成的json成功信息的前后加上<pre></pre>
他会在生成的json成功信息的前后加上<pre></pre>
发表评论
-
一个小细节现实后的蛋疼结果。
2011-03-07 08:37 1178情况是这样子的,比如你用单击按钮在单数次单击里面要求某个数为0 ... -
eclipse3.6 集成 myeclipse 插件
2010-11-16 14:06 4730最近很是邪恶,不想费钱,但又不想邪恶的去找 myeclipse ... -
spring mvc 系列2 泛型DAO(基于存储过程)
2010-10-06 14:05 5470spring mvc 系列1 中: 感谢 ricoyu 提示 ... -
spring mvc 系列1 环境配置
2010-10-02 18:59 1979废话: 热门?=spring + hibernate + st ... -
finally 浅谈
2010-07-29 10:01 2400近日做程序时突发奇想:try ... finally ... ... -
大量数据访问时,用JPA 对象映射关系会出错?
2009-12-30 09:23 2788昨天在做一JPA调试时出了些莫名其妙的错。 public ... -
单线程处理多任务处理方式
2009-12-27 16:14 4309缘由: 在实际的应用中可能会出现这样一种尴尬:只有一个 ... -
命令模式,解释命令
2009-12-26 21:52 1081用命令模式解释命令 ... -
Hibernate+jpa+spring
2009-12-23 17:34 1350今天搞了一个JPA+HIBERNATE,以下是资料,全英文 h ... -
需要但没有session等会话信息下的程序开发
2009-10-19 09:52 1191本人最近在做个小实现: 需求:类似于聊天室, ... -
jpa 多个对象映射同时加载
2009-10-13 23:18 1373jpa 多个对象映射同时加载 FetchType可设置为EA ... -
利用RMI实现JAVA分布式应用
2009-10-10 15:53 1027Java RMI (Remote Method Invocat ... -
一道SQL面试题
2009-09-22 17:28 1110有两个表, table1, table2, Table tab ... -
java 取随机字符串
2009-09-16 13:51 4655package org.jinsheng.util; ... -
junit4单元测试的注释使用说明
2009-08-24 23:16 4793junit4单元测试的使用说明 右键项目->prope ... -
spring2.5注释型 + jpa + 数据库池的配置(4)
2009-08-10 00:57 1331PersonDao.java package org.ji ... -
spring2.5注释型 + jpa + 数据库池的配置(3)
2009-08-10 00:45 1108Person.java(实体文件) package org ... -
spring2.5注释型 + jpa + 数据库池的配置(2)
2009-08-10 00:41 1267文件配置: applicationContext.xml ... -
spring2.5注释型 + jpa + 数据库池的配置(1)
2009-08-10 00:28 1836本人用的环境是:eclipse 3.0 + jdk 6.0_1 ...
相关推荐
在Spring MVC框架中,开发Web应用时经常需要将对象转换为JSON格式的数据并返回给客户端。然而,在处理敏感数据时,我们可能希望对这些数据进行脱敏,即隐藏或替换某些字段,以保护用户隐私或者确保数据安全性。本文...
然后,在Spring的配置文件中,我们可以通过`<mvc:annotation-driven>`标签启用HTTP消息转换器支持,这样Spring MVC会自动处理JSON的序列化和反序列化。 3. **模型绑定和JSON输入** 当前端向后端发送JSON数据时,...
2. **配置 Spring MVC**:在 Spring MVC 的配置文件中,我们需要添加 `Jackson` 的转换器,使得 Spring MVC 能够解析和生成 JSON 数据。例如,在使用 XML 配置时,可以添加以下配置: ```xml <bean class="org....
**Spring3 MVC与Ajax结合使用JSON** 在现代Web开发中,Spring框架的MVC模块与Ajax和JSON的集成是创建动态、响应式用户界面的关键技术。这个"Spring3 MVC Ajax with JSON"项目提供了一个Eclipse工程,包含了实现这一...
在Spring MVC框架中,我们经常需要处理JSON数据,这些数据可能包含null值。在某些情况下,为了保持数据的整洁和避免后端处理null值时出现异常,我们需要在数据传输前过滤掉这些null值。本教程将详细介绍如何使用...
在Spring MVC框架中,开发人员经常需要处理不同的数据交换格式,如XML和JSON,以便与客户端进行交互。这两种格式在Web应用中广泛用于传输数据,因为它们轻量级且易于解析。下面我们将深入探讨如何在Spring MVC中生成...
1. **创建Controller**:定义Spring MVC的控制器类,使用`@RequestMapping`注解映射URL,并使用`@ResponseBody`返回JSON数据。 2. **配置Jackson**:在Spring配置文件中启用Jackson并配置其属性,如日期格式化。 3. ...
本篇将深入探讨Spring MVC 3对JSON的支持以及解决常见错误的方法。 首先,让我们了解什么是JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在...
这个场景通常涉及到前端的JavaScript或jQuery库(如jQuery File Upload)与后端的Spring MVC控制器之间的交互,以及可能的多线程处理来跟踪文件上传的进度。接下来,我们将深入探讨如何在Spring MVC中实现这一功能。...
在本章中,我们将深入探讨Spring MVC框架与Servlet API以及JSON支持的相关知识。Spring MVC是Spring框架的一个核心模块,主要用于构建Web应用程序,它提供了一种优雅的方式来处理HTTP请求和响应,实现了模型-视图-...
总的来说,这个项目展示了Spring MVC在实际应用中处理文件上传下载的基本流程,以及与IDEA的集成和项目构建过程。通过对源代码的学习和理解,开发者可以进一步掌握Spring MVC的核心特性和实践技巧,提升Web应用的...
总有4个包 jackson-core-asl-1.9.13.jar jackson-core-lgpl-1.9.13 jackson-mapper-asl-1.9.13 jackson-mapper-lgpl-1.9.13
当返回类型为@RequestBody或@ResponseBody时,Spring MVC会自动将返回的对象转换为JSON,发送到客户端。 三、源代码分析 1. pom.xml:项目依赖管理文件,包含了Spring MVC、Jackson库和其他相关依赖。例如,添加...
在本示例中,我们将向您展示如何将对象转换成json格式并通过spring mvc框架返回给用户。 使用技术及环境: Spring 3.2.2.RELEASE Jackson 1.9.10 JDK 1.6 Eclipse 3.6 Maven 3 PS:在spring 3 中,要输出json...
3. **Controller**:创建一个Spring MVC Controller类,定义处理JSON请求的方法。例如,你可以创建一个接受POST请求的方法,该方法使用`@RequestBody`接收JSON数据,并用`@ResponseBody`返回结果。 ```java import ...
在Spring MVC中,为了将Java对象转换成JSON格式并返回给客户端,我们需要依赖于JSON库。在提供的信息中,提到了`jackson-all-1.9.x.jar`系列的包,这是Jackson库的一个早期版本。Jackson是一个非常流行的JSON处理库...
最近在整spring mvc 返回json的配置,网上搜集整理了一下,觉得蛮有用的就共享出来,三个必备json包并附spring mvc 返回json的配置,此包有两个版本json包,一个2.6一个2.2
在本教程中,我们将深入探讨如何使用Spring MVC框架构建一个返回JSON格式数据的服务器。首先,这个项目涉及的技术栈包括Spring MVC、JDBC、JSON以及Gson。Spring MVC是Spring框架的一部分,它允许我们构建RESTful ...
本示例提供了一个完整的返回JSON数据的接口的Spring MVC Demo,帮助开发者理解如何在Spring MVC应用中实现JSON序列化和反序列化。 首先,我们需要了解JSON的基本结构。JSON是一种轻量级的数据交换格式,它基于...