- 浏览: 697790 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (364)
- quick start (57)
- bboss aop (43)
- bboss mvc (48)
- bboss persistent (96)
- bboss taglib (30)
- bboss event (10)
- bbossgroups (52)
- bboss (32)
- bboss会话共享 (17)
- bboss rpc (7)
- bboss 国际化 (5)
- bboss 序列化 (9)
- bboss cxf webservice (8)
- bboss hessian (3)
- bboss 安全认证SSO (15)
- bboss 工作流 (6)
- 平台 (18)
- bboss quartz (3)
- 杂谈 (5)
- 大数据 (1)
- bboss elastic (24)
- bboss http (1)
- bboss kafka (1)
- Elasticsearch Scroll和Slice Scroll查询API使用案例 (1)
最新评论
-
qianhao123:
...
采用gradle构建和发布bboss方法介绍 -
qianhao123:
[img][/img]
采用gradle构建和发布bboss方法介绍 -
yin_bp:
欢迎大家参与working
高性能elasticsearch ORM开发库使用介绍 -
qq641879434:
万分感谢
bboss 持久层sql xml配置文件编写和加载方法介绍 -
yin_bp:
qq641879434 写道怎么设置配置文件 可以查看执行的S ...
bboss 持久层sql xml配置文件编写和加载方法介绍
bbossgroups mvc 对象自动转换为json响应请求功能浅析
bbossgroups mvc 对象自动转换为json响应请求有两种使用方式
方式一 服务端指定响应datatype为json,将返回对象直接转换为json数据返回到客户端
方式二 客户端请求中的datatype为json,则将返回对象直接转换为json数据返回到客户端
如果要使用对象转json数据功能,必须在bboss-mvc.xml文件中的httpMessageConverters节点中配置以下jackson转换器:
下面分别讲述两种方法的使用方法。
方式一 服务端指定响应datatype为json,将返回对象直接转换为json数据返回到客户端
自bbossgroups 3.2版本以来,我们可以直接在服务端的控制方法的ResponseBody注解指定返回数据类型(目前支持两种方式:json和String),我们来看服务端控制器方法的编写方式:
我们再看一下客户端如果通过请求与该控制器方法相对应的url来得到相对应的json对象:
我们在看一下将被转换为json数据的java对象AjaxResponseBean :
方式二 客户端请求中的datatype为json,则将返回对象直接转换为json数据返回到客户端
这种方式是由客服端提交请求时,指定数据类型dataType为json,先看客户端代码:
遍历json list对象及访问对象属性:
url : "menu/queryMenu.page"指定了要请求的控制器方法,下面我们就看一下该控制器方法的实现代码:
该方法通过@ResponseBody注解声明告诉mvc框架直接将类型为 List<MenuItemU>的返回值转换为json数据(因为客户端指定响应数据类型为json)响应到客户端。
MenuItemU对象的结构如下:
到此bboss mvc中的控制器对对象转换为json数据的自动处理功能就介绍完了,如有疑问还请留言讨论。
bbossgroups mvc 对象自动转换为json响应请求有两种使用方式
方式一 服务端指定响应datatype为json,将返回对象直接转换为json数据返回到客户端
方式二 客户端请求中的datatype为json,则将返回对象直接转换为json数据返回到客户端
如果要使用对象转json数据功能,必须在bboss-mvc.xml文件中的httpMessageConverters节点中配置以下jackson转换器:
<property class="org.frameworkset.http.converter.json.MappingJacksonHttpMessageConverter"/>
下面分别讲述两种方法的使用方法。
方式一 服务端指定响应datatype为json,将返回对象直接转换为json数据返回到客户端
自bbossgroups 3.2版本以来,我们可以直接在服务端的控制方法的ResponseBody注解指定返回数据类型(目前支持两种方式:json和String),我们来看服务端控制器方法的编写方式:
public @ResponseBody(datatype = "json") AjaxResponseBean deleteRequester( @RequestParam(name = "service_requester_id") String service_requester_id, HttpServletResponse response) throws Exception { AjaxResponseBean ajaxResponseBean = new AjaxResponseBean(); try { requesterService.deleteRequester(service_requester_id); ajaxResponseBean.setStatus("success"); } catch (Exception e) { ajaxResponseBean.setStatus("error"); if (e.getMessage() != null && e.getMessage().indexOf("constraint") > 0) { ajaxResponseBean.setData("存在关联数据,不能删除!"); } else { ajaxResponseBean.setE(e.getMessage()); } } return ajaxResponseBean; }
我们再看一下客户端如果通过请求与该控制器方法相对应的url来得到相对应的json对象:
var service_requester_id = cks.eq(0).val(); $.post( 'deleteRequester.page', { "service_requester_id" : service_requester_id }, function(responseText, textStatus) { alert(responseText.data); alert(responseText.status); });
我们在看一下将被转换为json数据的java对象AjaxResponseBean :
package org.ffameworkset.mvc; import java.io.Serializable; public class AjaxResponseBean implements Serializable { //状态,success表示成功,error表示失败 private String status; //信息 private String data; private String e; public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getData() { return data; } public void setData(String data) { this.data = data; } public String getE() { return e; } public void setE(String e) { this.e = e; } }
方式二 客户端请求中的datatype为json,则将返回对象直接转换为json数据返回到客户端
这种方式是由客服端提交请求时,指定数据类型dataType为json,先看客户端代码:
//缓存二级菜单 var moduleItems = new Array(); $.ajax({ type : "post", dataType : "json", data : { "moduleId" : moduleId }, url : "menu/queryMenu.page", cache : false, async : false,// ajax同步标志修改 error : function() { window.parent.locaction="logout.jsp"; }, success : function(data) { //将返回的数据放入js缓存 moduleItems[moduleId] = data; } });
遍历json list对象及访问对象属性:
//从js缓存中读取二级菜单信息 var data = moduleItems[moduleId]; if (data.length > 0) { $.each(data, function(i) { var span = $("<span style=\"cursor:pointer;\" class=\"func\" id=\"" + this.id + "Node" + "\" title=\"" + this.name + "\" dataType='iframe' dataLink='" + this.pathU + "' iconImg='images/msn.gif'>" + this.name + "</span>").click(function() { //如果二级菜单项被点击,则触发主体内容窗口的addTab函数 var name = $(this).attr('title'); var dataLink = $(this).attr('dataLink'); addTab(name, dataLink); }); var currentdiv = $("<div style=\"width:100px;float:left;margin-left:5px;\"><div style=\"text-align:center;\"><img src=\"" + this.imageUrl + "\" width=\"25\" height=\"25\" style=\"cursor:pointer;\" on></div><div style=\"margin-top:1px;text-align:center;color:#000;\" id=\"" + this.id + "\"></div></div>"); currentdiv.find("img").click(function() { currentdiv.find("span").click(); }); $(".bj").append(currentdiv); $("#" + this.id).append(span); }); }
url : "menu/queryMenu.page"指定了要请求的控制器方法,下面我们就看一下该控制器方法的实现代码:
public @ResponseBody List<MenuItemU> queryMenu(@RequestParam(name = "moduleId") String moduleId, HttpServletRequest request) { try { AccessControl control = AccessControl.getAccessControl(); String modulePath = control.getCurrentSystemID() + "::menu://sysmenu$root/" + moduleId + "$module"; MenuHelper menuHelper = new MenuHelper( control.getCurrentSystemID(), control); ItemQueue itemQueue = menuHelper.getSubItems(modulePath); List<MenuItemU> list = new ArrayList<MenuItemU>(); for (int i = 0; itemQueue != null && i < itemQueue.size(); i++) { Item item = itemQueue.getItem(i); if (!item.isUsed()) { continue; } String contextPath = request.getContextPath(); String url = MenuHelper.getMainUrl(contextPath, item, (java.util.Map) null); MenuItemU menuItemU = new MenuItemU(); menuItemU.setId(item.getId()); menuItemU.setName(item.getName()); menuItemU.setImageUrl(item.getMouseclickimg()); menuItemU.setPathU(url); menuItemU.setType("item"); list.add(menuItemU); } return list; } catch (Exception e) { e.printStackTrace(); } return null; }
该方法通过@ResponseBody注解声明告诉mvc框架直接将类型为 List<MenuItemU>的返回值转换为json数据(因为客户端指定响应数据类型为json)响应到客户端。
MenuItemU对象的结构如下:
public class MenuItemU { private String id; private String name; private String imageUrl; private String pathU; private String type; private boolean hasSon; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getImageUrl() { return imageUrl; } public void setImageUrl(String imageUrl) { this.imageUrl = imageUrl; } public String getPathU() { return pathU; } public void setPathU(String pathU) { this.pathU = pathU; } public String getType() { return type; } public void setType(String type) { this.type = type; } public boolean getHasSon() { return hasSon; } public void setHasSon(boolean hasSon) { this.hasSon = hasSon; } }
到此bboss mvc中的控制器对对象转换为json数据的自动处理功能就介绍完了,如有疑问还请留言讨论。
发表评论
-
bboss mvc控制器方法跳转地址设置方法介绍
2017-12-09 21:52 913bboss mvc控制器方法跳转地址设置方法介绍 1.直接指 ... -
bboss mvc json插件设置日期类型格式方法
2017-02-28 11:33 746bboss mvc json插件设置日期类型格式方法 一般的 ... -
bboss mvc控制器实现etag和last modify两种http缓存机制
2016-09-07 23:48 1272bboss mvc控制器实现etag和last modify两 ... -
bboss wordpdf构建部署介绍
2016-09-02 15:47 572bboss wordpdf构建部署介绍 下载 源码下载地址: ... -
解决tomcat stop报Illegal access: this web application instance has been stopped异常方法
2015-12-26 23:41 5963解决tomcat stop报Illegal access: t ... -
bboss mvc文件上传实例
2015-06-08 11:13 37本文着重介绍bboss mvc文件上传功能,切入正题 功能点 ... -
bboss mvc @RequestBody注解使用说明
2014-10-23 15:53 1055@RequestBody可以将客户端请求报文体通过数据类型转换 ... -
bboss开发、模块工程目录结构及功能说明
2014-10-15 19:46 4912基于bboss开发项目说明 ... -
bboss安全认证过滤器认证后重定向到请求页面功能介绍
2014-10-12 10:55 1351本文介绍bboss安全认证 ... -
bboss mvc控制器方法响应报文注解ResponseBody使用说明
2014-09-20 22:39 1197bboss mvc控制器方法响应 ... -
bboss mvc启动事件监听器使用方法
2014-09-02 20:25 1162在实际应用,往往需要在mvc容器启动后执行相应的操作,bbos ... -
bboss session共享使用方法介绍
2014-05-10 16:12 6153bboss session共享使用方法 ... -
bboss将一个组件同时发布为webservice,hessian,http三种服务方法介绍
2014-04-12 14:31 1659bboss将一个组件同时发布为webservice,hessi ... -
bboss发布apache cxf 2.7.6服务和定义客户端服务实例可能产生冲突解决办法
2014-03-22 23:16 1094bboss发布apache cxf 2.7.6服务和定义客户端 ... -
bboss mvc接收和响应xml格式数据的方法
2013-12-28 19:14 1077本文介绍bboss mvc接收和响应xml格式数据的方法 1 ... -
bboss mvc忽略对bean属性进行参数绑定方法
2013-10-10 20:20 976bboss mvc忽略对bean属性进行参数绑定方法非常简单, ... -
bboss mvc参数绑定注解RequestParam使用说明
2013-08-17 00:02 4201bboss mvc参数绑定注解RequestParam使用说明 ... -
bboss mvc参数绑定注解MapKey使用说明
2013-08-10 23:27 1191bboss mvc参数绑定注解MapK ... -
bboss mvc获取request,session,response,pageContext对象方法
2013-07-12 13:19 1393本文介绍基于bboss mvc后台java程序如何获取requ ... -
bboss mvc ajax响应输出中文乱码解决方法
2013-07-10 23:08 1073对于bboss mvc ajax请求响应出现的中文乱码问题,怎 ...
相关推荐
BBoss MVCDemo 是一个基于Java的企业级应用框架,它主要为开发者提供了一种高效、灵活的MVC(Model-View-Controller)开发模式。这个框架的目的是简化企业级Web应用的开发流程,提高开发效率,并且具备良好的可扩展...
标题中的“bboss mvc 通过jsonp实现跨站跨域远程访问”指的是使用bboss MVC框架来处理JSONP(JSON with Padding)请求,以克服浏览器的同源策略限制,实现跨域数据交互。bboss MVC是一个Java Web开发框架,它提供了...
NULL 博文链接:https://yin-bp.iteye.com/blog/1131637
该工具是一款基于bboss...此工具能够自动生成bboss MVC、IOC、持久化、JSP、i18n、SQL配置文件、Web服务、Hessian服务等相关源代码,适用于快速开发和项目迭代。详细文档请参考:http://yin-bp.iteye.com/blog/2256948
官方版本,亲测可用
视图解析器负责将处理结果转换为用户可以查看的页面,例如JSP。在这里,配置了InternalResourceViewResolver,用于解析JSTL视图,并且可以通过prefix和suffix属性来指定视图路径的前缀和后缀。消息源则用于国际化和...
自动代码生成器是针对bboss框架和bboss开发平台的自动代码生成工具,可以根据模板,自动生成给定表的增,删,改,分页查询,列表查询,国际化功能对应的程序和配置文件: 1.mvc控制器 2.业务组件 3.实体类 4.jsp文件...
BBoss(全称为bbossgroups)是一个专为企业级J2EE应用设计的开源框架,它为Java开发者提供了一系列强大的工具和服务,以简化Web应用程序的开发过程。该框架旨在提高开发效率,降低维护成本,同时保持高度的灵活性和...
bboss会话共享是一种分布式会话管理技术,它针对在集群环境下应用部署时如何解决会话数据丢失和单点登录问题提供了专门的解决方案。根据提供的文档内容,我们可以详细探讨bboss会话共享涉及的关键知识点。 首先,...
2. `jackson-databind-2.9.8.jar`:Jackson是JSON处理库,`databind`模块实现了将Java对象映射到JSON和反向映射的功能,对于Elasticsearch的数据导入和导出非常关键。 3. `bboss-util-5.5.0.jar`和`bboss-...
**bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。它实现了流批一体化的数据处理能力,使得用户能够灵活地应对实时和批量的数据处理场景。在...
本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...
在Web应用程序中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前进行预处理,以及在响应离开服务器之前进行后处理。SYSAuthenticateFilter就是BBoss框架中专门用于安全认证的...
**bboss+es基本操作示例** ...总之,bboss+es基本操作示例是学习和实践Elasticsearch与Java集成的优秀资源,通过这个示例,开发者可以快速掌握bboss框架下的DSL操作,为实际项目开发打下坚实基础。
3. **查询数据**: 构建查询条件,通过 BBoss API 发送请求并解析返回结果。 4. **更新和删除**: 更新已存在的文档,或者根据条件删除数据,同样可以通过 BBoss API 实现。 5. **高级功能**: 学习如何利用 BBoss 进行...