Struts2標籤之Checkbox詳解

Struts2標籤之Checkbox詳解

  
    sparta-紫杉   2010-4-14 16:53


    開發環境:eclipse3.4.2 + weblogic10.3 + jdk1.6.0_13 + Struts2.1.8 + Spring3.0.1 + Hiberante3.3.2

    在Web系統或項目的開發過程中,jsp頁面上經常會使用checkbox來實現用戶多選的要求。

    普通的寫法多半是這樣:
    <input type=checkbox name="abc" value="1" checked>北京<br>
    <input type=checkbox name="abc" value="2">上海<br>
    <input type=checkbox name="abc" value="3">天津<br>

    那麼既然使用了SSH2的開發框架,當然要使用Struts2的<s:checkbox/>標籤來實現用戶的多選要求。

    令人不解的是,網絡上大多是在詳解<s:checkboxlist/>,但對於<s:checkbox/>卻描述的很少。
    今天正好要用到這個<s:checkbox/>,咱也不妨來“詳解”一下子,一來是做個筆記,二來若是能爲各位程序達人在關鍵時刻提個醒,以解決探索之苦!

    至於<s:checkbox/>和<s:checkboxlist/>的區別我不談了,大家可以在百度上搜一下。

    其實,<s:checkbox/>還是挺好入門的,不外乎有下面幾個屬性,id、name、value、fieldValue、label共計5個常用屬性。

    id和name: 指的是該標籤的標識id和標識名。
    value   : 指是否選中,其值只能爲True或False,相當於傳統checkbox中的checked。
    fieldValue : 相當於傳統checkbox中的value值。
    label   : 對於該checkbox顯示在頁面上方框後面的描述。

    還是打個簡單的比方吧, 比如我要用角色id(RoleId)和角色名稱(RoleName)來生成很多checkbox,那麼採用如下的寫法。

    <s:checkbox id="permisskey" name="permisskey" label="超級管理員" value="true" fieldValue="Role_Admin"/>
    <s:checkbox id="permisskey" name="permisskey" label="普通用戶" value="false" fieldValue="Role_User"/>

    那麼在生成真正的Html頁面時,大約是下面這樣的形式:

    <input type="checkbox" id="permisskey" name="permisskey" checked value="Role_Admin">超級管理員
    <input type="checkbox" id="permisskey" name="permisskey" value="Role_User">普通用戶

    當然上面的例子建立在Struts2默認的主題(theme)下,大家可別忘了這個關鍵的屬性“theme”。

    不妨再加個屬性試試吧:

    <s:checkbox theme="simple" id="permisskey" name="permisskey" label="超級管理員" value="true" fieldValue="Role_Admin"/>
    <s:checkbox theme="simple" id="permisskey" name="permisskey" label="普通用戶" value="false" fieldValue="Role_User"/>

    設置了theme="simple"之後,便自動放棄了Struts2的一些裝飾。那麼顯示的頁面上的結果會令你大吃一驚的:

    <input type="checkbox" id="permisskey" name="permisskey" checked value="Role_Admin">
    <input type="checkbox" id="permisskey" name="permisskey" value="Role_User">

    注意到沒有, 後面的“超級管理員”和“普通用戶”兩段字眼莫名其妙的消失了。這就是theme起的主要作用。

    當然,還需要注意,這個theme是有繼承性的, 比方說,這個<s:checkbox/>在一個<s:form/>裏面,並且這個<s:form/>裏面也設置了theme="simple"的話,就會影響到這個<s:checkbox/>,等於爲該<s:checkbox/>設置了theme-"simple"。

    哈哈,就這麼多了。



            -東營 sparta-紫杉 原創,轉載請註明出處 :)
            http://www.blogjava.net/SpartaYew/
            [email protected]
 
            
QQ:22086526
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章