zoukankan      html  css  js  c++  java
  • 2015年创业中遇到的技术问题:11-20

    11.SpringMVC接收参数,冲突。
    class LoanBean {
    private Double amount;
    }

    class LoanInfo{
       piavate Money amount;
    }

    @RequestMapping("/doadd")
    public void doAdd(LoanInfo loanInfo, LoanBean loanBean);


    json请求发过来,接收amount就遇到了400错误。

    解决办法:变量名称不用同一个。

    12.HTML下拉列表框选中。
    增加的时候,select标签选择了一个值,更新的时候,默认要选中。
    2种方法:
    执行一个函数:selectOne("creditRate","${loanInfo.creditRate}");

    //这种方法太复杂了,不建议使用
    function selectOne2(id,value){
      var count = $("#"+id+" option").length;
      for(var i=0;i<count;i++){
      var element=$("#"+id).get(0).options[i];
        if(element.value == value){  
         element.selected = true;  
             break;  
         } 
       }
    }
     //这种非常简单
      function selectOne(id,value){
      $("#"+id).val(value);
      }

    13.sql查询优先级。
    select id,uid, id_card,real_name,status from idcard_info

     where 1=1 and (id_card like '%42%' or real_name like '%42%') and status = 2
     
      order by id desc limit 0,10 
      
      中间的要加括号,

    14.分页组件fupage使用过程中发现了一个bug。
      原来是用同步实现分页,郁闷的地方是,需要维护每次请求的pageNo,pageSize,搜索词等。
      后来,自己用了异步实现分页,不需要手动维护pageNo等变量,自带的“记忆”功能。
      
      刚刚发现,有个使用过程中的bug。
      
      流程:访问页面,展示第1页,点击第3页。
      这个地方,再使用“搜索”功能,page是同一个,pageSize是准确的,但是pageNo仍然是3。
      导致了,有搜索结果,但是看不到,因为只有2页。
      
      解决办法:搜索再次发送请求时,指定“pageNo=1”即可。

    15.JS函数参数个数不确定。
      formatTime({status},{time},{updateTime});
      updateTime可能是空。
      
      函数实际为,formatTime(1,111,);
      报错了。
      
      //函数,如果参数以“,”结尾,去掉最后1个“,”
      function(full,funName,funArgs) {
    //0:@centToYuan(120000)
    //1:centToYuan
    //2:120000,1
    //console.log("0:"+arguments[0]);
    //console.log("1:"+arguments[1]);
    //console.log("2:"+arguments[2]);
    if(funArgs != null && funArgs.lastIndexOf(",")==funArgs.length-1){
    console.log(funArgs);
    funArgs=funArgs.substr(0,funArgs.length-2);
    }
    var fn=funName+"("+funArgs+")";
    var tdValue=eval(fn);
    });

    16.JS中的var变量,最好以“;”结尾。
    var formatTenderReturnMoney = function(type, amount, principal,
    extra_interest) {
    var str = "";
    return str;
    };//这个地方的“分号”不能少啊。
    (
      function() {
    })();

    17.Mybatis的Dao函数重名。
      在java中,函数是可以重名,因为可以“重载”。
      但是,Mybatis映射的select的id,对应Java程序是dao层的函数名字,不能重名。
      这一点,经常会出现。
      比如,下面2个都是更新状态,只是where条件不一样。
     @Update("update p2p_loan_repay set status=#{status} where rid=#{rid} and status=#{oldStatus}")
    int updateStatus(@Param("rid")Long rid,@Param("oldStatus")Integer oldStatus,@Param("status")Integer status);
    @Update("update p2p_loan_repay set status=#{status} where lid=#{loanId} and no=#{no} and status=#{oldStatus}")
    int updateStatusBy(@Param("loanId") Long loanId,@Param("no")Integer no,@Param("oldStatus")Integer oldStatus,@Param("status")Integer status);
    解决办法:把下面的一个方法,rename为:
    updateStatusByLid。

    18.KindEditor和UEditor上传图片有问题。

    Spring中已经配置了bean。
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8"></property>  
    </bean>

    KindEditor中的取不到文件了。

    解决办法,配置自定义的MyMultipartResolver
    也就是因为这个配置,会让Spring MVC处理request对象,所以在使用KindEditor上传图片的时候,拿到的request都是空的.

    只需要自己写一个类继承CommonsMultipartResolver,重写isMultipart方法放过KindEditor上传图片的URL即可.

    public class MyMultipartResolver extends CommonsMultipartResolver {
     
        @Override
        public boolean isMultipart(HttpServletRequest request) {
            if(request.getRequestURI().contains("/message/uploadJson")) {
                return false;
            } else {
                return super.isMultipart(request);
            }
        }
    }
    以上代码实现了一个自定义的MyMultipartResolver继承了CommonsMultipartResolver,重写了isMultipart,放过所有包含/message/uploadJson的请求.

    最后在XML配置文件中,使用我们自己的MyMultipartResolver

    <bean id="multipartResolver" class="com.kenshiro.MyMultipartResolver">
        <property name="defaultEncoding" value="utf-8"></property>
    </bean>


    19.KindEditor无法获取值。
    KindEditor.ready(function(K) {
    editor = K.create('textarea[id="content"]', {
    cssPath : prettifyCssPath,
    uploadJson : uploadJson,
    urlType : 'absolute'
    });
    prettyPrint();
    });
    解决办法:获得值之前,需要先调用同步方法“sync”。
    editor.sync();
    $("#content").val();
    感觉挺麻烦的。

    20.KindEditor和UEditor上传图片,返回的路径可能是“/image/”这种。
    如果Tomcat带项目名称,比如http://localhost:8080/user/
    这个时候无法正常显示图片,真够烦人的。

    目前图省事,并且保证兼容性,直接把项目部署在root下。
    很多类似的问题,都可以采用这种root部署的方式解决。
  • 相关阅读:
    有些文件不需要配置,只需要放到resources下面
    RAFT算法
    HBase,region以及HFile概念
    GitHub搭建个人网站续
    sublime text 2 安装emmet插件
    前端收录
    Zepto
    将复杂form表单序列化serialize-object.js
    PHP 清除HTML代码、空格、回车换行符的函数
    Yii2 选择布局的方式
  • 原文地址:https://www.cnblogs.com/qitian1/p/6462833.html
Copyright © 2011-2022 走看看