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的渲染效果
 

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