FormBean到底是什嗎?

來源:互聯網
上載者:User

FormBean到底是什麼。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

我們在Struts FrameWork裡我們在配置config的時候要配置一個FormBean,相信有些人會和我有同樣的困惑,這個FormBean在整個FrameWork裡扮演的是一個什麼樣的角色,它到底有什麼樣的作用。帶著這些疑惑,我們來跟蹤一下這個FormBean在FrameWork裡到底幹了些什麼。怎麼做的。

  我們在web模組的web-inf目錄下找到struts-config.xml這個XML設定檔,從下面這個目錄裡我們可以看到struts-config.xml設定檔可以分成很多個的,這樣便於設定檔的管理,一個模組對應一個設定檔,非常清晰。我們開啟其中的一個Config設定檔(如紅色框的檔案)

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

我們在設定檔裡看到有<form-beans>標籤這裡定義的是這個模組所需要的FormBean如下圖所示,這裡type="butone.hr.rcyw.ldht.object.LDHTVO"是指FormBean的包路徑,名稱為name="LDHTVO",我們再在下面的<action-mappings>標籤裡可以看到一個action對應一個FormBean,由此可以知道Action與FormBean是一一對應且是唯一的。



我們再開啟LDHTAction這個檔案看看,我們在檔案中根據傳遞的cmdFlag為“select”可以看到一下代碼:

LDHTPageInfoVO aLDHTPageInfoVO = new LDHTPageInfoVO();

aLDHTPageInfoVO.queryCommCondition = SelectCondition.toString();

           Vector result = aLDHTService.selectLDHTList(aLDHTPageInfoVO);

           request.setAttribute("pageResult", result);

從這段代碼裡我們完全看不到LDHTVO這個VO,我們發現只有LDHTPageInfoVO,我們再看看這個VO裡到底有些什麼東西:

public class LDHTPageInfoVO extends PageInfoVO {

 

    public LDHTPageInfoVO() {

       orderName = LDHTConstant.DEFAULT_ORDER_NAME;

       orderType = LDHTConstant.DEFAULT_ORDER_TYPE;

       rowsPerPage = LDHTConstant.ROWS_PER_PAGE;

       tableName = LDHTConstant.VIEW_NAME;

       listNames = LDHTConstant.SELECT_COLS;

    }

 

}

原來僅僅繼承了一個分頁的PageInfoVO,裡面還有分頁的資訊。

我們繼續跟蹤這段話Vector result = aLDHTService.selectLDHTList(aLDHTPageInfoVO);

開啟LDHTService這個類找到selectLDHTList這個方法

public Vector selectLDHTList(PageInfoVO apageInfoVO) throws Exception {

       return aLDHTLocal.selectLDHTList(apageInfoVO);

    }

這個方法只有一句話,調用了一個SessionBean方法LDHTHandle,開啟這個SessionBean我們可以找到這個方法如下:

public Vector selectLDHTList(PageInfoVO apageInfoVO) throws Exception {

       LDHTVO aLDHTVO = new LDHTVO();

       LDHTDBAccess aDBAccess = new LDHTDBAccess();

       return aDBAccess.selectPage(apageInfoVO, aLDHTVO);

    }

哈哈,終於出現LDHTVO了,這個方法調用了一個LDHTDBAccess類裡的selectPage方法並傳入了兩個參數其中一個是分頁資訊,另一個就是LDHTVO這個VO。

我們繼續跟蹤看看selectPage這個方法到底幹了些什麼。 開啟LDHTDBAccess這個類找到selectPage這個方法:

public class LDHTDBAccess extends DBPageBean {

 

   

    /**   

    * Description: 刪除一條記錄     

    * @param String id

    * @return void

    * @throw Exception

    */

    public void deleteOne(String id) throws Exception {

       StringBuffer SQL = new StringBuffer();

       SQL.append("delete from ");

       SQL.append(LDHTConstant.TABLE_NAME);

       SQL.append(" where ");

       SQL.append(LDHTConstant.KEY_NAME);

       SQL.append("='");

       SQL.append(id);

       SQL.append("'");

       exectueSql(SQL.toString());

    }

 

 

    /**

     * @method isIllegal

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.