資料字典的設計--5.資料的儲存,資料字典設計--5

來源:互聯網
上載者:User

資料字典的設計--5.資料的儲存,資料字典設計--5

  儲存分為兩種:

1.沒有選擇類型列表,添加新的類型名稱,此時儲存表示新增一種資料類型:

 

2.選擇下拉框中資料類型,類型名稱不可見,此時儲存表示在已有的資料類型上進行編輯和修改:

  其中,類型名稱可見與否是通過js代碼實現的:

1.在dictionaryIndex.jsp中添加saveDict()

  當點擊【儲存】時,執行以下代碼:  

function saveDict(){                    if(document.Form1.keyword.value=="jerrynew"){              if(Trim(document.Form1.keywordname.value)==""){                 alert("請輸入類型名稱");                 return false;              }                           var allkeywords= document.Form1.keyword;             for(var i=0;i<allkeywords.length;i++){                        if(allkeywords[i].value==Trim(document.Form1.keywordname.value)){                              alert("已存在此類型名稱,請重新輸入");                   return false;                 }                              }             //設定標誌符“new”表示新增一種資料類型              document.Form2.keywordname.value=document.Form1.keywordname.value;              document.Form2.typeflag.value="new";                        }else{            //設定標識符“add”表示在已有的資料類型上進行編輯和修改              document.Form2.keywordname.value=document.Form1.keyword.value;              document.Form2.typeflag.value="add";              }          var tbl=document.getElementById("dictTbl");          for (i=1;i<tbl.rows.length;i++){                        var name = tbl.rows[i].cells[1].getElementsByTagName("input")[0].value;                     if(Trim(name)==""){                         alert("名稱不可為空!");                                                  return false;                     }             }             for(k=1;k<=tbl.rows.length-2;k++)          {               for(m=k+1;m<=tbl.rows.length-1;m++)               {                         var name1 = tbl.rows[k].cells[1].getElementsByTagName("input")[0].value;                    var name2 = tbl.rows[m].cells[1].getElementsByTagName("input")[0].value;                    if(name1 == name2){                        alert("名稱不能相同!");                          return false;                }                }          }          document.Form2.action="${pageContext.request.contextPath }/system/elecSystemDDLAction_save.do";          document.Form2.submit();         }  

  作用:1.判斷輸入類型名稱是否為空白,是否與資料庫已有的類型名稱重複;

     2.判斷表單中內容是否為空白,是否有重複

  其中定義keywordname和typeflag為隱藏輸入欄位:

<input type="hidden" name="keywordname" ><input type="hidden" name="typeflag" >
2.在ElecSystemDDL中增加:
/**非持久化javabean的屬性*/    //資料類型    private String keywordname;    /**     * 用來判斷執行到業務標識     * add:此時【儲存】表示在已有的類型上進行編輯和修改     * new:此時【儲存】表示新增一種資料類型     */    private String typeflag;        //資料項目的值,數組    private String [] itemname;    public String getKeywordname() {        return keywordname;    }    public void setKeywordname(String keywordname) {        this.keywordname = keywordname;    }    public String getTypeflag() {        return typeflag;    }
 3.在ElecSystemDDLAction中增加save()方法:
/**      * @Name: save    * @Description: 儲存表單資料到資料庫    * @Parameters: 無    * @Return: String:重新導向到system/dictionaryIndex.jsp再查詢    */    public String save(){        elecSystemDDLService.saveSystemDDL(elecSystemDDL);        return "save";    }
4.修改struts.xml:
<!-- 資料字典 --><action name="elecSystemDDLAction_*" class="elecSystemDDLAction" method="{1}">      <result name="home">/WEB-INF/page/system/dictionaryIndex.jsp</result>       <result name="edit">/WEB-INF/page/system/dictionaryEdit.jsp</result>       <result name="save" type="redirectAction">              <param name="actionName">elecSystemDDLAction_home.do</param>       </result> </action>
5.IElecSystemDDLService中添加方法的聲明
void saveSystemDDL(ElecSystemDDL elecSystemDDL);
6.實作類別ElecSystemDDLServiceImpl中重寫:
/**      * @Name: saveSystemDDL    * @Description: 儲存資料到資料字典    * @Parameters: ElecSystemDDL:VO對象    * @Return: 無    */    @Override    @Transactional(isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED,readOnly=false)    public void saveSystemDDL(ElecSystemDDL elecSystemDDL) {        //1:擷取頁面傳遞的參數        //資料名稱        String keyword = elecSystemDDL.getKeywordname();        //標識符        String typeflag = elecSystemDDL.getTypeflag();        //資料項目的值        String[] itemname = elecSystemDDL.getItemname();        //2:擷取判斷商務邏輯的標識(new和add)        //如果typeflag==new:新增一種新的資料類型        if("new".equals(typeflag)){            //* 遍曆頁面傳遞過來的資料項目的名稱,組織PO對象,執行儲存            this.saveDDL(keyword,itemname);        }        //如果typeflag==add:在已有的資料類型基礎上進行編輯和修改        else{            //* 使用資料類型,查詢該資料類型對應的list,刪除list            List<ElecSystemDDL> list = this.findSystemDDLListByKeyword(keyword);            elecSystemDDLDao.deleteObjectByCollection(list);            //* 遍曆頁面傳遞過來的資料項目的名稱,組織PO對象,執行儲存            this.saveDDL(keyword,itemname);        }          }    private void saveDDL(String keyword, String[] itemname) {        if(itemname!=null&&itemname.length>0){            //* 遍曆頁面傳遞過來的資料項目的名稱,組織PO對象,執行儲存            for(int i=0;i<itemname.length;i++){                ElecSystemDDL systemDDL = new ElecSystemDDL();                systemDDL.setDdlCode(i+1);                systemDDL.setDdlName(itemname[i]);                systemDDL.setKeyword(keyword);                elecSystemDDLDao.save(systemDDL);            }            }}

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.