(19)Struts2_表單標籤

表單標籤


概述

表單標籤將在 HTML 文檔裏被呈現爲一個表單元素

使用表單標籤的優點:

  • 表單回顯
  • 對頁面進行佈局和排版

標籤的屬性可以被賦值爲一個靜態的值或一個 OGNL 表達式. 如果在賦值時使用了一個 OGNL 表達式並把它用 %{} 括起來, 這個表達式將會被求值.

表單標籤的共同屬性

該屬性只在沒有使用 simple 主題時纔可以使用.


form 標籤

form 標籤用來呈現 HTML 語言中的表單元素

默認情況下, form 標籤將被呈現爲一個表格形式的 HTML 表單. 嵌套在 form 標籤裏的輸入字段將被呈現爲一個表格行. 每個表格行由兩個字段組成, 一個對應着行標, 一個對應着輸入元素. 提交按鈕將被呈現爲一個橫跨兩列單元格的行

textfield, password, hidden 標籤

textfield 標籤將被呈現爲一個輸入文本字段, password 標籤將被呈現爲一個口令字段, hidden 標籤將被呈現爲一個不可見字段.

password 標籤擴展自 textfield 標籤, 多了一個 showPassword 屬性. 該屬性時布爾型. 默認值爲 false, 它決定着在表單回顯時是否顯示輸入的密碼.

submit 標籤

submit 標籤將呈現爲一個提交按鈕. 根據其 type 屬性的值. 這個標籤可以提供 3 種呈現效果:

        input: <input type=“submim” …/>
        button: <input type=“button” …/>
        image: <input type=“image” />

textarea 標籤

textarea 標籤將呈現爲一個 HTML 文本域元素

    <!-- form-tag.jsp -->
    <s:form action="save">
        <s:hidden name="userId"></s:hidden>
        <s:textfield name="userName" label="UserName"></s:textfield>
        <s:password name="passWord" label="Password"></s:password>
        <s:textarea name="desc" label="Desc"></s:textarea>
        <s:submit></s:submit>
        <s:checkbox name="merried" label="是否已婚" ></s:checkbox>
    </s:form>

    //UserAction.java
    private String userId;
    private String userName;
    private String passWord;
    private String desc;
    private boolean merried;

    public boolean isMerried() {
        return merried;
    }

    public void setMerried(boolean merried) {
        this.merried = merried;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

        <!-- 表單提交後,重新跳轉到form-tag.jsp -->
        <action name="save" class="com.qbz.struts2_02.UserAction" method="save">
            <result name="input">/form-tag.jsp</result>
        </action>

以上可發現,form表單的回顯功能,其他標籤的回顯於此類似。


checkbox 標籤

checkbox 標籤將呈現爲一個 HTML 複選框元素. 該複選框元素通常用於提交一個布爾值

當包含着一個複選框的表單被提交時, 如果某個複選框被選中了, 它的值將爲 true, 這個複選框在 HTTP 請求裏增加一個請求參數.但如果該複選框未被選中, 在請求中就不會增加一個請求參數.

checkbox 標籤解決了這個侷限性, 它採取的辦法是爲單個複選框元素創建一個配對的不可見字段

<s:checkbox name="merried" label="是否已婚" ></s:checkbox>

查看源文件

<input type="checkbox" name="merried" value="true" checked="checked" id="save_merried"/>
<input type="hidden" id="__checkbox_save_merried" name="__checkbox_merried" value="true" /> 
<label for="save_merried" class="checkboxLabel">是否已婚</label> </td>

checkboxlist標籤

checkboxlist 標籤將呈現一組多選框.

#

<s:form action="save">
    <s:checkboxlist name="citys" list="#session.list" listKey="cityId" listValue="cityName"></s:checkboxlist>
    <s:submit></s:submit>
</s:form>

    private List<String> citys;

    public List<String> getCitys() {
        return citys;
    }

    public void setCitys(List<String> citys) {
        this.citys = citys;
    }


    public String save() {
        System.out.println(this);
        List<City> cities = new ArrayList();

        cities.add(new City("1001", "北京"));
        cities.add(new City("2001", "上海"));
        cities.add(new City("3001", "廣州"));
        cities.add(new City("3002", "深圳"));
        cities.add(new City("4001", "杭州"));
        ActionContext.getContext().getSession().put("list", cities);
        return "input";
    }


select 標籤

select 標籤將呈現一個 select 元素.

optiongroup 標籤

optiongroup 標籤對 select 元素所提供的選項進行分組. 每個選項有它自己的來源.

        <s:select name="city" list="#session.list" listKey="cityId" listValue="cityName">
            <s:optgroup label="Test" list="#session.list" listKey="cityId" listValue="cityName"></s:optgroup>
        </s:select>

private String city;

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }


radio 標籤

radio 標籤將呈現爲一組單選按鈕, 單選按鈕的個數與程序員通過該標籤的 list 屬性提供的選項的個數相同.

一般地, 使用 radio 標籤實現 “多選一”, 對於 “真/假” 則該使用 checkbox 標籤.

<s:radio list="#session.list" listKey="cityId" listValue="cityName" name="rcity"></s:radio>

private String rcity;

    public String getRcity() {
        return rcity;
    }

    public void setRcity(String rcity) {
        this.rcity = rcity;
    }

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