@ResponseBody注解 and eval函数
来源:互联网 发布:kali linux 使用教程 编辑:程序博客网 时间:2024/06/06 01:12
@ResponseBody的作用是把返回值直接写到HTTP response body里,而不返回具体页面,springMVC结合org.springframework. http.converter.json.MappingJacksonHttpMessageConverter 自动处理json
场景1.
java代码:
@ResponseBody @RequestMapping(value="/ajaxgetGoods",method = RequestMethod.POST) public List<GoodsDTO> ajaxgetGoods(@RequestParam("setCode") String setCode){ QueryExpress queryExpress = new QueryExpress(); PageRows<GoodsDTO> pageRows = null; if(!StringUtil.isEmpty(setCode,true)) { queryExpress.add(QueryCriterions.eq(GoodsField.SETCODE,setCode)); } try { pageRows = goodsWeblogic.queryGoodsDTOListByPage(queryExpress,null);} catch (ServiceException e) {e.printStackTrace();} return pageRows.getRows(); }对应的jQuery代码:
function selectGoods(){ $.ajax({ type : "POST", url : "${ctx}/goods/ajaxgetGoods1", data : { setCode:$("#setCode").val() }, success : function(data){ console.log(data); $("#referId").empty(); var strOption = "<option value='-1'>全部</option>"; $.each(data,function(i,val){ strOption += "<option value='"+val.goods.goodsBarCode+"'>"+val.goods.goodsName+"</option>"; }); $("#referId").html(strOption); } }); }此时返回的是GoodsDTO实体对象
如果将jQuery代码改为:
function selectGoods(){ $.ajax({ type : "POST", url : "${ctx}/goods/ajaxgetGoods1", data : { setCode:$("#setCode").val() }, <span style="color:#ff0000;">dataType : 'json',</span> success : function(data){ console.log(data); $("#referId").empty(); var strOption = "<option value='-1'>全部</option>"; $.each(data,function(i,val){ strOption += "<option value='"+val.goods.goodsBarCode+"'>"+val.goods.goodsName+"</option>"; }); $("#referId").html(strOption); } }); }
此时返回json对象数组
这说明@ResponseBody并不直接返回json,把返回值直接写到HTTP response body,但是如果有json请求,回自动处理
场景2.
@ResponseBody @RequestMapping(value="/ajaxgetGoods1",method = RequestMethod.POST) public String ajaxgetGoods1(@RequestParam("setCode") String setCode){ QueryExpress queryExpress = new QueryExpress(); PageRows<GoodsDTO> pageRows = null; if(!StringUtil.isEmpty(setCode,true)) { queryExpress.add(QueryCriterions.eq(GoodsField.SETCODE,setCode)); } try { pageRows = goodsWeblogic.queryGoodsDTOListByPage(queryExpress,null);} catch (ServiceException e) {e.printStackTrace();} return JsonMapper.nonEmptyMapper().toJson(pageRows.getRows()); // 转json串 }对应的jQuery代码:
function selectGoods(){ $.ajax({ type : "POST", url : "${ctx}/goods/ajaxgetGoods1", data : { setCode:$("#setCode").val() }, success : function(data){ console.log(data); <span style="color:#ff0000;">var resultMsg = eval('(' + data + ')');</span> console.log(resultMsg); $("#referId").empty(); var strOption = "<option value='-1'>全部</option>"; $.each(data,function(i,val){ strOption += "<option value='"+val.goods.goodsBarCode+"'>"+val.goods.goodsName+"</option>"; }); $("#referId").html(strOption); } }); }
先将集合通过MappingJacksonHttpMessageConverter转换成json串,然后用eval函数转换成json对象,感觉这种方式有点多此一举 因为在场景1中通过 dataType : 'json'
直接可以获取json对象 何必要 后台转json串前台再转json对象呢,个人感觉场景1靠springMvc自动根据类型处理比较省时省力!!!! 0 0
- @ResponseBody注解 and eval函数
- @requestBody and @responseBody注解作用
- @ResponseBody注解
- @ResponseBody注解
- @ResponseBody注解
- @ResponseBody注解
- @responsebody注解
- @ResponseBody注解
- @ResponseBody注解
- @ResponseBody 注解
- responseBody注解
- @responseBody注解
- @ResponseBody注解
- @responseBody注解
- @RequestBody, @ResponseBody 注解详解
- SpringMVC 注解之@ResponseBody
- SpringMVC注解之@ResponseBody
- Spring注解@ResponseBody
- expdp/impdp 详细参数解释
- XML Handle by javax.xml.stream.*
- CentOS 卸载OpenJdk和Tomcat开机启动
- 黑马程序员-面向对象的基础1
- iOS开发所有KeyboardType与图片对应展示
- @ResponseBody注解 and eval函数
- 《数据结构》实验一: VC编程工具的灵活使用
- Android MediaProvider数据库模式
- Babelfish (map 用法。<string, string>
- SQL Server 检查和处理死锁问题
- ubuntu Android Studio
- ubuntu12.04先编译android2.3.6源代码
- Android中HandlerThread
- IOS ----UIButton用法详解