BOS项目及知识点总结_01

来源:互联网 发布:java aop编程实例 编辑:程序博客网 时间:2024/05/29 09:53

messager消息提示对象使用


<script type="text/javascript">  $(function(){      $("#alert").click(function(){          $.messager.alert("提示","提示的内容","error");       $("#confirm").click(function(){          $.messager.confirm("提示","确定要删除吗?",function(r){              if(r){                  alert("数据被删除");              }          });      })      $.messager.show({          title:'消息提示',          msg:'显示的具体内容',          timeout:3000,          showType:'slide'                  })  })</script></head><body> <button  id="alert">alert</button> <button  id="confirm">confirm</button></body>

spring data jpa学习简化持久层DAO开发


@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:applicationContext.xml"})public class JPATest {    @Autowired    private StandardDao dao;    //spring data jpa的保存方法如果有没有设置主键id,会根据配置生成相应的主键策略,如果有保存的对象有id那么保存方法相当于更新操作,save相当于saveOrUpdate    @Test    public void testAdd(){        Standard  standard = new Standard();//      standard.setId(id);        standard.setMaxLength(100);        standard.setMaxWeight(100);        standard.setMinLength(11);        standard.setMinWeight(11);        standard.setName("11-100");        standard.setOperatingCompany("顺义分公司");        standard.setOperatingTime(new Date());        standard.setOperator("admin");        dao.save(standard);    }    //查询所有    @Test    public void testFindAll(){        List<Standard> list = dao.findAll();        System.out.println(list);    }    // 根据指定ID查询    @Test    public void testFindOne() {        Standard standard = standarDao.findOne(1);        System.out.println(standard);    }    // 自定义查询    // 根据指定的属性获取数据    @Test    public void testFindByName() {        List<Standard> findAll = standarDao.findByName("11-100");        System.out.println(findAll);    }    // 自定义属性模糊查询    @Test    public void testFindByNameLike() {        List<Standard> findAll = standarDao.findByNameLike("%20%");        System.out.println(findAll);    }    // 自定义属性or查询    @Test    public void testFindByNameOrOperator() {        List<Standard> findAll = standarDao.findByNameOrOperator("100-200", "李四");        System.out.println(findAll);    }    // 自定义属性and查询    @Test    public void testFindByNameAndOperator() {        List<Standard> findAll = standarDao.findByNameAndOperator("100-200", "李四");        System.out.println(findAll);    }    //模糊查询    @Test    public void testFindByNameLikeOrOperatorLike(){        List<Standard> list = standarDao.findByNameLikeOrOperatorLike("1-10","admin");        System.out.println(list);    }    @Test    public void testFindBymingzi(){        List<Standard> list = standarDao.findBymingzi("11-100");        System.out.println(list);    }    //更新操作    @Test    public void testUpdateOperator(){        standardService.updateOperator("asasa");    }}

如果查询的方法不符合springjpa的方法命名规范,可以在dao的接口通过注解声明

//dao接口需要继承JpaRepositorypublic interface StandardDao extends JpaRepository<Standard, Integer> {//  @Query("from Standard where name=?") //JPQL    @Query(value="select * from T_STANDARD where C_NAME=?",nativeQuery=true)    List<Standard> findBymingzi(String string);    @Query("update Standard  set name=?") //JPQL    @Modifying  //涉及到修改数据时    void updateOperator(String string);}

JqueryUI的常见操作


表单的保存

<script type="text/javascript">             $(function(){                //给保存按钮添加单击事件                 $("#save").click(function(){                 //验证表单字段是否全部通过校验                   if($("#standardForm").form('validate')){                        //如果验证通过,则用serialize插件将表单数据进行封装                        var formData = $("#standardForm").serializeJSON();//                      JSON.stringify(formData)  把object对象转成json字符串,此方法是js方法//                       使用异步的方式保存数据                        $.ajax({                            url:'../../standardAction_save.action', //提交的地址                            type:'post', //提交的方式                            data:formData, //需要提交的数据                            dataType:'json', //数据的格式,如果在响应数据已经设置,此步可以不写                            success:function(data){                            //返回数据的样式  {"success":true|false,"message":"保存成功"|"保存失败"}                               if(data.success){//                                1、窗口关闭                                  $("#standardWindow").window('close');//                                2、列表数据刷新                                 $("#grid").datagrid('reload');//                                3、alert提示                               }                                  $.messager.alert("提示",data.message);                            }                        })                     }                 })             })            </script>

服务端实现代码

@Action("standardAction_save")    public void save() throws IOException{        Map<String,Object> map = new HashMap<String,Object>();//      json字符串回写到浏览器中        HttpServletResponse response = ServletActionContext.getResponse();        response.setContentType("application/json;charset=utf-8");        try {            service.save(model);//           {"success":true|false,"message":"保存成功"|"保存失败"}            map.put("success", true);            map.put("message", "保存成功");//          map转成json字符串            String string = JSONObject.fromObject(map).toString();            response.getWriter().write(string);        } catch (Exception e) {            map.put("success", false);            map.put("message", "保存失败");//          map转成json字符串            String string = JSONObject.fromObject(map).toString();            response.getWriter().write(string);        }    }

使用easyUI提供的API动态创建datagrid及分页效果

script type="text/javascript">  $(function(){      $("#grid").datagrid({          url:'../data/datagrid.json',  //地址一般是服务端路径          columns:[[                    {field:'name',title:'姓名',width:200},                    {field:'age',title:'年龄',width:100},                    {field:'gender',title:'性别',width:100,formatter:function(value,rowData,rowIndex){//                      value 此列中每个单元格的值  rowData 此单元格所在行的数据,rowIndex 此单元格所在行的索引值  索引值是从0开始                        if(value==1){                            return "男";                        }                        if(value==0){                            return "女";                        }                    }}                    ]],         singleSelect:true,  //当行选中效果         pagination:true,    //开启分页栏         pageSize:3,         //每页显示的条数         pageList:[3,6,9,12] //每页显示条数的下拉选择      })  })</script>

服务端分页代码实现

    private int page; //当前页码    private int rows; //每页显示的最大条数    public void setPage(int page) {        this.page = page;    }    public void setRows(int rows) {        this.rows = rows;    }    @Action("standardAction_findByPage")    public void findByPage(){        //注意:此时page需要减1        Pageable pageable = new  PageRequest(page-1, rows);        Page page = service.findByPage(pageable);//      拼装datagrid分页时需要的数据格式//      {"total":100,"rows":[{},{},{}]}        Map<String,Object> map = new HashMap<String,Object>();        //获得总条数        map.put("total", page.getTotalElements());        //获得查询得到对象        map.put("rows", page.getContent());        String string = JSONObject.fromObject(map).toString();        HttpServletResponse response = ServletActionContext.getResponse();        response.setContentType("application/json;charset=utf-8");        try {            response.getWriter().write(string);        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }

判断是否只选择了几条记录

//                  判断是否只是选择了一条数据                    var rowDatas = $("#grid").datagrid('getSelections');//获取所有选择的数据,返回结果是一个数组                    if(rowDatas.length!=1){                        $.messager.alert('提示','请选择一条数据修改');                        return ;                    }

回显数据

                text : '修改',                iconCls : 'icon-edit',                handler : function(){                    //判断用用户选中了几条数据,返回的是选中数据的数组                    var number = $("#grid").datagrid('getSelections');                    if(number.length!=1){                        alert("请选择一个要修改的数据");                        return;                    }                    $('#standardWindow').window({                            title:'修改'                    });                      //弹出窗口                    $("#standardWindow").window("open");                    //数据回显                    /* alert(JSON.stringify(number[0])) */                    **$('#standardId').form('load',number[0]);**                }

逻辑删除

function doDelete(){//              判断是否选择了数据                var rowDatas = $("#grid").datagrid('getSeletions');                if(rowDatas.length==0){                    $.messager.alert("提示","请选择需要作废的数据");                }else{                    var ids = new Array();  //js中创建数组的方式                    for (var i = 0; i < rowDatas.length; i++) {                        ids.push(rowDatas[i].id);                    }//                  [1,2,3]--->"1,2,3"                    ids = ids.join(",");                    $.ajax({                        url:'../../courierAction_deleteBatch.action',                        type:"post",                        data:{"ids":ids},                        dataType:'json',                        success:function(data){                            if(data.success){//                              刷新表格数据                                $("#grid").datagrid('reload');                            }//                          alert提示                           $.messager.alert("提示",data.message);                        }                    })                }            }

服务端代码

private String ids;//前端传来的需要作废的ids    public void setIds(String ids) {        this.ids = ids;    }    @Action("courierAction_deleteBatch")    public void deleteBatch() throws IOException{        Map<String,Object> map = new HashMap<String,Object>();//      json字符串回写到浏览器中        HttpServletResponse response = ServletActionContext.getResponse();        response.setContentType("application/json;charset=utf-8");        try {            service.deleteBatch(ids);//                      map.put("success", true);            map.put("message", "操作成功");//          map转成json字符串            String string = JSONObject.fromObject(map).toString();            response.getWriter().write(string);        } catch (Exception e) {            map.put("success", false);            map.put("message", "操作失败");//          map转成json字符串            String string = JSONObject.fromObject(map).toString();            response.getWriter().write(string);        }    }

service代码

@Override    public void deleteBatch(String ids) {//      ids="1,2,3"        String[] cids = ids.split(",");        for (int i = 0; i < cids.length; i++) {//          dao.delete(Integer.parseInt(cids[i]));  //此方法是物理删除            dao.updateDelTag(Integer.parseInt(cids[i]));  //作废操作是修改courier对象中的deltag字段        }    }

dao层

public interface CourierDao extends JpaRepository<Courier, Integer> {    @Query("update Courier set deltag='1' where id=?")    @Modifying    void updateDelTag(int parseInt);}