• BOS项目 第5天(定区的添加、定区的分页查询、hessian远程调用实现获取客户信息)


    BOS项目笔记 第5

     

    今天内容安排:

    1、添加定区功能

    2、定区分页查询

    3hessian入门----远程调用技术

    4、基于hessian实现定区关联客户

     

    1. 添加定区

    定区可以将取派员、分区、客户信息关联到一起。

    页面:WEB-INF/pages/base/decidedzone.jsp

     

    第一步:使用下拉框展示取派员数据,修改comboboxURL地址,发送请求

     

     

    第二步:在StaffAction中提供listajax方法,查询没有作废的取派员,返回json数据

     

    第三步:在StaffService中提供方法查询没有作废的取派员

     

    第四步:在BaseDao中提供通用的条件查询方法

     

     

    第五步:使用datagrid展示未关联到定区的分区数据

     

     

    第六步:在SubareaAction中提供listajax方法,查询未关联到定分区的分区数据,返回json

     

    Service代码:

     

    第七步:为添加定区窗口中的保存按钮绑定事件

     

    第八步:提交上面的添加定区表单,id名称冲突

     

    第九步:在Subarea类中提供getSubareaid方法,返回的json中含有subareaid字段

     

     

    第十步:创建定区管理的Action,提供add方法保存定区,提供subareaid 数组属性接收多个分区id

     

    Service代码:

     

    第十一步:配置struts.xml

     

    2. 定区分页查询

    页面修改datagridURL

     

    在定区Action中提供分页查询方法

     

    修改Decidedzone.hbm.xml

     

     

    3. hessian入门

    Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebServiceHessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

    常见的远程调用的技术:

    1webserviceCXFaxissoap

    2httpclient

    3hessian---http协议、二进制数据

    4dubbo---阿里巴巴

     

    hessian有两种发布服务的方式:

    1、使用hessian框架自己提供的Servlet发布

    2、和spring整合发布服务

     

    入门案例参见hessian入门案例.txt

     

    4. 定区关联客户

    4.1 发布crm服务

    第一步:创建动态的web项目crm,导入hessianjar

    第二步:创建一个crm数据库和t_customer

    第三步web.xml中配置springDispatcherServlet

     

    第四步:提供接口CustomerServiceCustomer类、hbm映射文件

     

    第五步:为上面的CustomerService接口提供实现类

     

    第六步:在WEB-INF目录提供spring的配置文件remoting-servlet.xml

     

    4.2 bos项目中调用crm服务获得客户数据

    第一步:在bos项目中导入hessianjar

    第二步:从crm项目中复制CustomerService接口和Customer类到bos项目中

    第三步:在spring配置文件中配置一个代理对象,可以调用crm服务

     

    第四步:将上面的代理对象通过注解方式注入到Action

     

    第五步:为定区列表页面中的“关联客户”按钮绑定事件,发送2ajax请求访问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='"+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='"+id+"'>"+name+"</option>");

    }

    },'json');

    }else{

    $.messager.alert("提示信息","请选择一个定区操作!","warning");

    }

    }

    第六步:为左右移动按钮绑定事件

     

    第七步:为关联客户窗口中的“关联客户”按钮绑定事件

     

     

    第八步:在定区Action中接收提交的参数,调用crm服务实现定区关联客户业务功能

     

  • 相关阅读:
    字符串转json
    如何解决写好的脚本上传Linux执行出错?
    Windows查看端口并开放端口
    解决mysql遇到非root权限无法登录mysql数据库的问题
    raid配置
    Python实现根据时间移动/复制一个文件夹的文件--模拟大并发数据
    ffmpeg基本命令学习
    pytest学习--pytest的skip和skipif
    多项式全家桶学习笔记(How EI's poly works)
    具体数学难度评分
  • 原文地址:https://www.cnblogs.com/wujizun/p/6926031.html
Copyright © 2020-2023  润新知