SSM电商项目---杂记

###备忘###


#1.返回插入记录的主键(自增)的两种实现
<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User" >         
        <!-- 
            将插入到数据的主键返回,返回到User对象中
            SELECT LAST_INSERT_ID():调用mysql内置函数(CALL是调用存储过程),得到刚insert进去记录的主键值,只适用于自增主键
            keyProperty:将查询到主键值设置到parameterType指定的对象的哪个属性
            order: SELECT LAST_INSERT_ID()的执行顺序,相对于insert语句来说它的执行顺序
            resultType:返回的key即User属性的类型
         -->
        <selectKey keyProperty="id" resultType="int" order="AFTER" >
            SELECT LAST_INSERT_ID()
        </selectKey>
        insert into user(username,sex,birthday,address) values(#{userName},#{sex},#{birthday},#{address})
</insert>



<insert id="addProduct" parameterType="Product" useGeneratedKeys="true" keyProperty="id">
        INSERT INTO bbs_product
</insert>

 

#2.异步提交的两种实现
function uploadPic(){        
        //定义参数
        var options = {
            url: "/upload/uploadPic.do",
            dataType: "json",   //这里大小写要和后端返回时设置的contentType一致
            type: "post",
            success:function(data){
                //将返回的 两个路径的值赋到相应的标签中  
                //url
                //path  jquery是$("")不是EL表达式
                $("#allImgUrl").attr("src",data.url);
                $("#path").val(data.path);
                
            }
        };
        //调用jquery的异步提交函数,访问通过options参数中的url走后端
        $("#jvForm").ajaxSubmit(options);
}



function saveUpdate(skuId){
            var marketPrice = $("#m"+skuId).attr("disabled",disabled).val();
            var price = $("#p"+skuId).attr("disabled",true).val();
            var stock = $("#s"+skuId).attr("disabled",true).val();
            var upperLimit = $("#l"+skuId).attr("disabled",true).val();
            var deliveFee = $("#f"+skuId).attr("disabled",true).val();


            //异步提交 保存
            var url = "/sku/update.do";
 var params = {"id":skuId,"marketPrice":marketPrice,"price":price,"stock":stock,"upperLimit":upperLimit,"deliveFee":deliveFee};
            $.post(url,params,function(data){
                alert(data.message);
            },"json");
  //“json设置的是dataType  即调用成功返回数据的类型”
}


#3.前端页面跳转的两种写法
href属性: 默认执行的是url路径,跳转页面,同src、action属性;但也可以通过标注javascript来执行js的function函数
    例子:<a href="/product/list.do">直接通过url访问后台跳转页面</a>      (***不能标注javascript***)
         <a href="javascript:saveUpdate(${sku.id})">通过执行JS函数来做相应的变化</a>    (***必须标注javascript***)

onclick属性:默认执行的是JS函数;但也可以通过JS函数的window.location.href="url"来直接跳转页面
       例子: <a href="##" onclick="saveUpdate(${sku.id})">执行JS函数来做相应的变化</a>       (***可标注或不标注javascript,一般默认不标注***)
            <a href="##" onclick="javascript:window.location.href='/product/list.do'">将跳转链接封装在JS函数中</a>   (***可标注或不标注javascript,但为了代码规范建议标注***)

tips:一般建议用onclick属性,但同时保留href="javascript:void(0)",这样做可以防止href的二次提交同时保留href的渲染效果
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章