工作週報7.25-7.30

先回答上週的問題,我在新的路徑中配置model類,編譯後映射不了。
而原因是我沒有在resource路徑下的applicationContext.xml中添加我的路徑,以至於Spring無法找到我新增的路徑的各個類,當然也就映射不到model類了。
添加路徑聲明在
<property name="annotatedPackagePrefixes">
下的list添加。
這次任務工作量不多,就是對一個數據類型的增刪改查,表只有三個,指標項(我要操作的數據)表,指標項審覈表和計算方法表。這周我寫的是指標項增刪改查和審覈的初型,暫還沒用到計算方法表。而我這周的收穫最多的就是對這個框架的熟悉。
上週主要做了實體類的創建和映射,在做完這步後我從前臺開始入手,先畫了個數據增加的頁面。然後我要弄清楚前臺數據傳入後臺的方式。
這裏要知道,前臺到後臺,一般都是調用action來實現的,而我這周接觸的action類型有四種。
1.不帶參數的,只是單獨打開另一個頁面的action,調用實例如:

function addColumn(){
        mini.open({
            url: "/hzrsmh/portal/f11010101/columnAddIndex.action",
            title: "創建指標項", width: 600, height: 600,allowResize:false,
            onload: function () {},
            ondestroy: function (action) {
                grid.reload();
            }
        });
    }

在這個jsp中,我創建了個點擊新增按鈕就會觸發的function,然後它會調用url中的columnAddIndex.action,而在f11010101Action.xml中我定義了columnAddIndex.action:

<action name="columnAddIndex" class="navigateAction">
            <result name="success">/WEB-INF/pages/portal/f11010101/addColumn.jsp</result>
        </action>

它的class是navigateAction,就是不進行任何操作,只是單純打開定義的jsp。
2.帶參數的action調用,如:

function modifyColumn(){
        var row = grid.getSelected();
        if(row){
            mini.open({
                url: "/hzrsmh/portal/f11010101/columnModifyIndex.action?dataid="+row.dataid,
                title: "指標項修改", width: 1028, height: 960,allowResize:false,
                ondestroy: function (action) {
                    grid.reload();
                }
            });
        }else{
            Wssip.util.showTips('請先選擇指標項!',2000);
        }
    }

與上相同,也是打開一個jsp,但會在該jsp中傳入指定的參數。
3.請求類action,這種一般在初始化頁面時用到,即向後臺傳遞一個參數,後臺根據參數獲取該表中一列或多列的數據,轉化成json數據,傳遞到前臺。(注:前臺與後臺數據定義的方式是,前臺定義控件的名稱與後臺實體類的名稱相同,數據會自動匹配。)如:

function doReset() {
        MiniUtils.maskwin("加載中...");
        Wssip.util.request("<c:url value='/portal/f11010101/loadColumn.action'/>",{dataid:${param.dataid}},"POST",function(data){
            MiniUtils.unmaskwin();
            var form =new mini.Form("modifyForm");
            form.setData(data);
        },function(data){
            MiniUtils.unmaskwin();
            mini.get("btn_submit").disable();
            MiniUtils.error(data.msg);
        });
    }

4.前臺向後臺傳遞數據。與body中定義一句:

<c:url var="FORM_URL" value="/portal/f11010101/modifyColumn.action"></c:url>

這樣可以用form.data獲取各個控件的數據,再傳入後臺如:

function doAdd(button){
        var form =new mini.Form("modifyForm");
        form.validate();
        if(!form.isValid()){
            return;
        }
        button.disable();
        json =form.getData();
        MiniUtils.maskwin("提交中...");
        Wssip.util.submit("${FORM_URL}",json,function(data){
            MiniUtils.unmaskwin();
            mini.alert("添加成功!");
        },function(data){
            MiniUtils.unmaskwin();
            button.enable();
            MiniUtils.error(data.msg);
        });
        }

在熟悉了該框架的前後臺數據交換後,做這個東西就不難了,不過中間還是會因爲粗心出各種各樣的BUG,慢慢成長吧!
添加:@override和@Transient的作用,@Override標註該方法是重載的,如果該方法形式與父類不同,編譯器會發出警告。
再添加:ORACLE 的sequence作用和定義方法,sequence的作用就是自動生成主鍵編號,而sequence的定義方法是,先在數據庫中創建設置,再在實體類中添加標註。
@Transient標註該屬性不與數據庫映射,ORM框架將忽略該屬性。
總結:東西好多,慢慢學吧

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