spring的使用-补充

1.bigDecimal

      @Column(precision = 23, scale = 2) // 小数据点后保留两位,整体精度是23位  precision:精度

      private BigDecimal price; // 订单价格

     

     

2.在结果视图中,type=redirectAction:表示跳转到另一个action,与当前action要在同一个名称空间下

 

3.工程重新部署后会覆盖tomcat中原来的项目,上传的文件会丢失,解决方法:将上传的文件放在别的文件夹中,配置虚拟路径访问:

      exlipse中虚拟路径的配置:

            1. 双击servers窗口中的tomcat

            2. 切换到modules窗口

            3. 点击add external web module

                  其中path为虚拟路径

                  document base为实际访问路径

           

4.<td><img class="img" src='<s:property value="#c.cusImgSrc"/>'> </td>      //<s:property>标签还可以写在引号里面

 

 

5.session一级缓存中两个不同对象不能有相同的oid

 

6.bootstrap模态框的弹出:

      <button type="button" class="btn btn-primary btn-sm" data-toggle="modal"  data-target="#myModal" >客户详情</button>

      其中两个重要的样式:

            data-toggle="modal" 

            data-target="#myModal"    //表示根据id引用页面上的标签

 

7.采用fastjson,将对象转为json数据时:

      A.如果存在循环引用,fastjson有自我保护机制:不会对同一个对象重复解析,这样带来的问题是可能获取不到想要的数据:解决方法

            1)采用过滤对象过滤属性,避免对象互相调用

            2)传入参数,取消循环引用

                  //返回数据转json,过滤属性(通过属性过滤对象)

                  List<Order> orders=customerService.findOrders(customerId);

                  PropertyFilter filter=new PropertyFilter() {           //通过这个接口过滤属性

                       @Override

                       public boolean apply(Object arg0, String fieldName, Object arg2) {

                             if("orders".equals(fieldName)){   //过滤orders字段,避免互相调用

                                   return false;

                             }

                             return true;

                       }

                  };

                  String json=JSONObject.toJSONString(orders,filter,SerializerFeature.DisableCircularReferenceDetect);      //SerializerFeature.DisableCircularReferenceDetect这个常量取消循环引用

     

      B.jsonObject能实现jsonArray的功能,jsonObject更加通用

     

     

8.location.herf="${pageContext.request.contextPath}/customer/delCustomer?id="+customerId;    //可通过这种方式发送同步请求

     

     

9.ssh整合中分页查询的问题     

      hibernateImplate对象不易实现分页查询,解决方法:

      在dao层获取到getsessionFactory(),通过getCurrentSession();获取session对象,实现分页查询:

           

      hibernateImplate中查询结果为一个值时,也会返回list集合,且这个值为Long类型;

            List<Long> count = (List<Long>) this.getHibernateTemplate().find("select count(*) from Order o where o.customer.id=?", customerId);

           

     

     

      发布地址

      在Java中,右键--refactor--rename     //可批量修改变量名或者方法名

     

10.json对象的参数传递问题:

      异步请求中,响应的json数据,当获取这个json数据中的字符串后,当作参数传递时:

     

      如:data.orderNum,data为通过响应的json,通过data获取到字符串orderNum,这里的字符串orderNum如果本身为数字,可以作为参数传递,如果本身不是数字如“ab”,则需要经过以下处理:

            1. JSON.stringify(orderList[i].orderNum)  //这是将json字符串转化为js字符串

            2. 或者在参数两边加两个引号   :"orderList[i].orderNum"

            这样处理后才可以当作参数传递

     

11.参数传递中要注意的问题:

      参数传递中先通过拦截器调用root中的set方法

            private void setId(int id){

                  this id=id;

            }

           

      然后在方法中通过域对象获取

     

            servletActionContext.getRequest.getParameter("id");

     

      如果两种获取参数的方式都有,均会执行并获取参数,如果id为字符串,调用上面的set方法会出错!

     

     

     

     

      

posted @ 2018-11-17 14:09  foreast  阅读(154)  评论(0编辑  收藏  举报