<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    談笑有鴻儒,往來無白丁

    在恰當的時間、地點以恰當的方式表達給恰當的人...  閱讀的時候請注意分類,佛曰我日里面是談笑文章,其他是各個分類的文章,積極的熱情投入到寫博的隊伍中來,支持blogjava做大做強!向dudu站長致敬>> > 我的微博敬請收聽

    1、需要字典的時候;

           <tr>
             
    <td>請選擇公文狀態:</td>
             
    <td>
                
    <tiles:insert definition="mainLayout" flush="true">   
                    
    <tiles:put name="dictionary" value="docstate"/>
                    
    <tiles:put name="value" value="114d389ec53[ab1ff2]-7ff4"/>                                
                    
    <tiles:put name="id" value="115ff81cf78[f5c8fb]-8000"/>                                
       
    </tiles:insert>
             
    </td>
           
    </tr>   

    其中value表示是一個默認值
    如果是在編輯的時候顯示的值通過ID來指定。

    2、設計步驟
       首先配置struts-config.xml
       

      <plug-in className="org.apache.struts.tiles.TilesPlugin" >
        
    <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
        
    <!-- Set Module-awareness to true -->
        
    <set-property property="moduleAware" value="true" />
      
    </plug-in>  

     第二:/WEB-INF/tiles-defs.xml
     

        <definition name="mainLayout" path="/part/defaultTemplate.jsp"> 
        
    </definition> 

    第三:定義模板

     

    <%
    DictionaryFactory.setDictionaryByName(dictionary, request);
    %>
    <logic:present name="${dictionary}">
        
    <select name="${dictionary}" size="1">
            
    <logic:iterate id="dobj" name="${dictionary}"
                type
    ="com.chinantn.library.dictionary.DicBean">
                
    <option value="<bean:write name='dobj' property='id'/>"
                    <logic:equal name
    ='dobj' property='id' value='${id}' >selected</logic:equal>
                    
    <logic:equal name='dobj' property='id'  value='${value}'>selected</logic:equal>>
                    
    <bean:write name="dobj" property="name" />
            
    </logic:iterate>
        
    </select>
    </logic:present>

    第四:讀取字典的配置文件

        <province>
            
    <id>id</id>
            
    <name>province</name> 
            
    <sql>select id,name from tb_dic_main</sql>
        
    </province>

    第五:解析xml文件根據傳入的想要使用的字典類型得到數據;

        //得到select option id    
        private static String sid =null;
        
    //得到select option name    
        private static String sname =null;
        
    //生成數據的ssql    
        private static String ssql =null;
        
        
    private static String dicName;

        
    /**
         * 
    @return dicName
         
    */

        
    public static String getDicName() {
            
    return dicName;
        }


        
    /**
         * 
    @param dicName 要設置的 dicName
         
    */

        
    public static void setDicName(String dicName) {
            DictionaryFactory.dicName 
    = dicName;
        }


        
    /**
         * 默認的構造函數
         *
         
    */

        
    public DictionaryFactory() {
             
    super();
        }


        
    /**
         * 根據配置文件進行初始化
         * 
         * 
    @param configFilename
         
    */

        
    public DictionaryFactory(String sConfigFileName) {
            
    this.sConfigFileName = sConfigFileName;
        }

        
        
    /**
         * 根據字典的類型得到需要設置的字典
         * 
    @param sDicType
         
    */

        
    public static void setDictionaryByName(String dicName,HttpServletRequest request) throws Exception, SQLException{
            
    //取得需要的參數
            init(dicName);        
            Connection conn 
    = DBConnection.getConnection();
            Statement stmt 
    = conn.createStatement();
            log.info(
    "ssql:"+ssql);
            ResultSet rset 
    = stmt.executeQuery(ssql);
            List list 
    = new ArrayList();
            
    while (rset.next()) {
                log.info(rset.getString(
    1+ " " + rset.getString(2));
                DicBean db 
    = new DicBean();
                db.setId(rset.getString(
    1));
                   db.setName(rset.getString(
    2));
                list.add(db);               
                }

            log.info(sname
    +"----"+list.size());
            request.setAttribute(sname, list);
            
    if (conn != null{
                
    try {
                    conn.close();
                }
     catch (Exception e) {
                    e.printStackTrace();
                }

            }

        }


        
    /**
         * 初始化數據字典的配置信息
         
    */
     
        
    private static void init(String dicName) {
            
            ClassPathResource classpath 
    = new ClassPathResource(sConfigFileName);
            
    //讀取xml配置文件的信息,初始化數組
            try {
                
    //獲得一個xml的解析器
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                
    //解析XML文件生成DOM文檔的接口類,以便訪問DOM
                DocumentBuilder builder = factory.newDocumentBuilder();
                
    //Document接口描述了對于整個XML文件的文檔樹
                Document document = builder.parse(classpath.getFile());
                
    //獲得根元素的子節點列表
                Element element = document.getDocumentElement();
                
    //得到需要的字典
                NodeList nodelist =element.getElementsByTagName(dicName);
                
    for(int i=0 ;i<nodelist.getLength();i++{
                    Element rootelement 
    = (Element)nodelist.item(i);
                    
    //獲得ID屬性 
                    NodeList idList = rootelement.getElementsByTagName("id");
                    
    //獲得ID元素
                    Element idElement = (Element)idList.item(0);
                    
    //獲得id元素的第一個值 
                    String id = idElement.getFirstChild().getNodeValue();
                    
    //獲得name元素名稱 
                    NodeList nameList = rootelement.getElementsByTagName("name"); 
                    
    //獲得name元素 
                    Element nameElement = (Element)nameList.item(0); 
                    
    //獲得name元素的第一個值 
                    String name = nameElement.getFirstChild().getNodeValue();
                    
    //獲得sql元素名稱 
                    NodeList sqlList = rootelement.getElementsByTagName("sql"); 
                    
    //獲得sql元素 
                    Element sqlElement = (Element)sqlList.item(0); 
                    
    //獲得sql元素的第一個值 
                    String sql = sqlElement.getFirstChild().getNodeValue();
                    sid 
    = id;
                    sname 
    = name;
                    
    //
                    ssql = sql +" where dictype='"+name+"'" ;
                    log.info(
    "id="+id+";name="+name+";sql="+sql);
                    
                }

            }
    catch(Exception e) {
                e.printStackTrace();
            }

        }

     

    第六:設計jsp
    返回第一步:就是這樣用。
    大概就是這么個流程了。并且可以實現把數據字典統一一個模塊維護!

     

     

     

    posted on 2007-11-03 10:33 壞男孩 閱讀(6884) 評論(5)  編輯  收藏 所屬分類: 生活隨筆

    FeedBack:
    # re: 如何設計一個公共的數據字典維護模塊
    2007-11-03 10:49 | 壞男孩
    # re: 如何設計一個公共的數據字典維護模塊
    2007-11-03 11:25 | 5D壁紙
    貌似不錯,頂一個,但是不知道博主要說什么,呵呵

    5D壁紙,http://5d6p.5d6d.com 歡迎來到國內最好的壁紙論壇  回復  更多評論
      
    # re: 如何設計表中的簡單函數
    2008-04-15 09:04 | 周愛榮
    我嘗試建立了一個合同數據庫,它包括了銷售合同,采購合同,以及收、發貨和收、付款。都是圍繞配件(即產品)來連接的。但是我還要建立一個庫存的表格,怎樣可以只能得使用到庫存而不用手動輸入。


    另外,我可以在窗體中使用函數(簡單的加減乘除),但是為什么表不可以一起應用呢?  回復  更多評論
      
    # re: 如何設計一個公共的數據字典維護模塊
    2009-02-17 11:05 | 過路人
    我想用Java寫個字典維護的程序,看完你上邊的那些說實話有點暈。能不能給我更多的指導。可以的話聯系我: hehaiquan@hotmail.com  回復  更多評論
      
    # re: 如何設計一個公共的數據字典維護模塊
    2012-05-14 15:46 | 冬顏008
    vmcxk kfgml;o   回復  更多評論
      
    主站蜘蛛池模板: 亚洲国产高清在线一区二区三区| 国产成人免费高清激情视频| 亚洲欧洲中文日韩久久AV乱码 | 成人免费乱码大片A毛片| 可以免费观看一级毛片黄a| 中文文字幕文字幕亚洲色| 少妇高潮太爽了在线观看免费| 亚洲欧洲精品久久| 无遮免费网站在线入口| 亚洲ts人妖网站| 在线成人a毛片免费播放| 亚洲av片在线观看| 亚洲&#228;v永久无码精品天堂久久 | 亚洲国产精品综合久久一线| 免费看一级高潮毛片| 亚洲综合色婷婷七月丁香| 日韩电影免费观看| 亚洲国产成人91精品| 日韩精品视频免费在线观看| 老司机免费午夜精品视频| 亚洲色婷婷一区二区三区| 久久国产免费观看精品3| 亚洲婷婷天堂在线综合| 日本黄色免费观看| 国产精品午夜免费观看网站| 亚洲国产天堂久久综合网站| 97人妻无码一区二区精品免费| 亚洲乱妇老熟女爽到高潮的片| 天堂亚洲免费视频| 国产高清不卡免费视频| 久久亚洲最大成人网4438| 亚洲成a人片在线播放| 国产精品区免费视频| 亚洲综合色丁香婷婷六月图片| 亚洲高清无码综合性爱视频| 一级毛片全部免费播放| 亚洲精品人成网线在线播放va| 伊人久久精品亚洲午夜| 亚洲最大免费视频网| ssswww日本免费网站片| 亚洲白色白色在线播放|