Ajax异步加载

         //第一步 使用@Expose查找
         //实体类的属性名不一定与数据库列名相同,但是类型一定要匹配
    //当使用gson进行生产json字符串时,可以通过判断是否有该注解生成字  符串内容
    //如由注解就添加到字符串中,没有的就不添加到json字符串中
    //说明:需要使用如下方式实例化gson对象:new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
    @Expose
    private int id;
    @Expose
    private String cname;

       //使用集合保存多条商品信息--list    
    private  List<Goods> goods;

//第二步 编写一个Action
@RequestMapping("/listcategory")
    public void listCategoryForAjax(HttpServletResponse response) throws IOException {

        List<Category> list = categoryService.findAll();
        // 通过Expose注解排除某些字段信息,即有些数据不添加到Json字符串中
        String s = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create().toJson(list);

        logger.info(list.size() + " :::::::::  " + s);

        // 把数据返回给浏览器--返回给jquery ui
        response.setContentType("text/html; charset=UTF-8");
        response.getWriter().write(s);
        response.getWriter().flush();
    }


//第三步 添加标签
<select id="category" name="category" class="easyui-combobox" data-options="valueField:'id', textField:'cname', panelHeight:'auto', width:'80'">



//第四步 编写javaScript代码

var url;
//打开新增窗口
function newGoods(){
    $('#dlg').dialog('open').dialog('setTitle','新增商品');
    //$('#fm').form('clear');
    $('#fm').form('reset');
    url = 'goods/saveGoodsForAjax.do';
    
    //打开新增窗口,加载分类信息
    loadCategory();
    
}


function loadCategory(){    
    
    
    var dat = $('#dg').datagrid('getSelected');
     $.ajax({url:"goods/listcategory.do",dataType:'json',type:'post',success:function(data){
        
        //把查询的数据填充到下拉列表中
        $("#category").combobox("loadData", data);
        //修改选择的项
        if(dat){
            //修改要反选默认值--根据value进行选择
          $('#category').combobox('select', dat.category);
        }else{
            //新增取第一个为默认值--根据value进行选择
             $('#category').combobox('select', data[0].id);
        }
    }});
}

 

posted @ 2016-12-08 08:21  binbgo  阅读(402)  评论(0编辑  收藏  举报