首页 > 代码库 > bos 第5天(定区的添加、定区的分页查询、hessian远程调用实现获取客户信息)
bos 第5天(定区的添加、定区的分页查询、hessian远程调用实现获取客户信息)
BOS项目笔记 第5天
今天内容安排:
1、添加定区功能
2、定区分页查询
3、hessian入门----远程调用技术
4、基于hessian实现定区关联客户
1. 添加定区
定区可以将取派员、分区、客户信息关联到一起。
页面:WEB-INF/pages/base/decidedzone.jsp
第一步:使用下拉框展示取派员数据,修改combobox的URL地址,发送请求
第二步:在StaffAction中提供listajax方法,查询没有作废的取派员,返回json数据
第三步:在StaffService中提供方法查询没有作废的取派员
第四步:在BaseDao中提供通用的条件查询方法
第五步:使用datagrid展示未关联到定区的分区数据
第六步:在SubareaAction中提供listajax方法,查询未关联到定分区的分区数据,返回json
Service代码:
第七步:为添加定区窗口中的保存按钮绑定事件
第八步:提交上面的添加定区表单,id名称冲突
第九步:在Subarea类中提供getSubareaid方法,返回的json中含有subareaid字段
第十步:创建定区管理的Action,提供add方法保存定区,提供subareaid 数组属性接收多个分区id
Service代码:
第十一步:配置struts.xml
2. 定区分页查询
l 页面修改datagrid的URL:
l 在定区Action中提供分页查询方法
修改Decidedzone.hbm.xml:
3. hessian入门
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。
常见的远程调用的技术:
1、webservice(CXF、axis)soap
2、httpclient
3、hessian---http协议、二进制数据
4、dubbo---阿里巴巴
hessian有两种发布服务的方式:
1、使用hessian框架自己提供的Servlet发布
2、和spring整合发布服务
入门案例参见“hessian入门案例.txt”
4. 定区关联客户
4.1 发布crm服务
第一步:创建动态的web项目crm,导入hessian的jar
第二步:创建一个crm数据库和t_customer表
第三步:在web.xml中配置spring的DispatcherServlet
第四步:提供接口CustomerService和Customer类、hbm映射文件
第五步:为上面的CustomerService接口提供实现类
第六步:在WEB-INF目录提供spring的配置文件remoting-servlet.xml
4.2 在bos项目中调用crm服务获得客户数据
第一步:在bos项目中导入hessian的jar
第二步:从crm项目中复制CustomerService接口和Customer类到bos项目中
第三步:在spring配置文件中配置一个代理对象,可以调用crm服务
第四步:将上面的代理对象通过注解方式注入到Action中
第五步:为定区列表页面中的“关联客户”按钮绑定事件,发送2次ajax请求访问Action,在Action中调用hessian代理对象,通过代理对象可以远程访问crm获取客户数据
//全局变量,定区选中的定区id var id; function doAssociations(){ //判断当前是否选中了一个定区 var rows = $("#grid").datagrid("getSelections"); if(rows.length == 1){ id = rows[0].id; //选中了一个 $(‘#customerWindow‘).window(‘open‘); $("#noassociationSelect").empty();//清空下拉框 $("#associationSelect").empty();//清空下拉框
//发送ajax请求获取没有关联到定区的客户 var url1 = "${pageContext.request.contextPath}/decidedzoneAction_findnoassociationCustomers.action"; $.post(url1,{},function(data){ //解析json数据,填充到下拉框中 /////////////// for(var i=0;i<data.length;i++){ var id = data[i].id; var name = data[i].name; $("#noassociationSelect").append("<option value=http://www.mamicode.com/‘"+id+"‘>"+name+"</option>"); } },‘json‘);
//发送ajax请求获取关联到当前选中定区的客户 var url2 = "${pageContext.request.contextPath}/decidedzoneAction_findhasassociationCustomers.action"; $.post(url2,{"id":rows[0].id},function(data){ //解析json数据,填充到下拉框中 /////////////// for(var i=0;i<data.length;i++){ var id = data[i].id; var name = data[i].name; $("#associationSelect").append("<option value=http://www.mamicode.com/‘"+id+"‘>"+name+"</option>"); } },‘json‘); }else{ $.messager.alert("提示信息","请选择一个定区操作!","warning"); } } |
第六步:为左右移动按钮绑定事件
第七步:为关联客户窗口中的“关联客户”按钮绑定事件
第八步:在定区Action中接收提交的参数,调用crm服务实现定区关联客户业务功能
bos 第5天(定区的添加、定区的分页查询、hessian远程调用实现获取客户信息)