首頁 > web前端 > html教學 > html中轉換成時加了selected屬性的詳解

html中轉換成時加了selected屬性的詳解

黄舟
發布: 2017-07-03 10:08:49
原創
2086 人瀏覽過

一、概念介紹

stust1中html標籤的使用,其中有html:select,html:option,詳情如下

#

<html:select property="test
String
" size="1">
    <html:option value="value1">Show Value1</html:option>
    <html:option value="value2">Show Value2</html:option>
    <html:option value="value3">Show Value3</html:option>
    <:html:submit property="submit" value="提交"/> </html:select>
登入後複製


其中,property表示該選擇清單與ActionForm中對應的屬性名稱。當使用者點擊提交後,會在測試頁面看到使用者所選取的選項的值。以下是程式碼的運作效果:

Show Value1 Show Value2 Show Value3

有一個size屬性,它表示同時顯示的選項的數目,如上例中的size為1,則只同時顯示一個選項。還有一個multiple屬性,當其為true時,該選擇清單就允許多選。使用者可以透過滑鼠的拖曳,或是按住Ctrl鍵進行多重選擇。

以下是multiple="true"和size="8"範例

value1 value2 value3 value4 value5 value6 value7 value8 value9 value10

當multiple屬性為true時,在屬性為true時,在屬性為true時,在屬性為true ActionForm中對應的屬性應為陣列類型以便同時向其賦上使用者選取的多個值。

標記是標記的選項,每個將在選擇框中代表一個選項。有如下程式碼所示:

<html:select property="testString" size="1">
    <html:option value="value1">Show Value1</html:option>
    <html:option value="value2">Show Value2</html:option>
    <html:option value="value3">Show Value3</html:option>
</html:select>
登入後複製


一個選項有兩個部分重要的內容。第一就是它所顯示給使用者的內容,這可以透過以下方式來指定:

    <html:option value="value1">Show Value1</html:option>
登入後複製

可以看出,使用兩個間的部分來表示使用者所見的內容。當然,也可以使用 所帶的key和bundle等屬性用來指定所在資源檔案中的內容,以此來表示使用者所見到的內容。其中,bundle和key屬性的用法請參考"設定檔"相關章節。

另一個重要的內容就是它所傳遞給ActionForm的值。這是由標記的value屬性指定的。如同上面的範例中,value的值分別為 value1,value2和value3,當使用者選取某個標記時,JSP頁面就會將該標記所對應的value傳給ActionForm中對應的屬性。

以下是運行效果:

Show Value1 Show Value2 Show Value3
登入後複製

二、不能不說的秘密

<html:option></html:option>转化成<option></option>时加了selected属性,RTFSC,看源码

if(selectTag().isMatched(value))
    results.append(" selected=\"selected\"");



public boolean isMatched(String value)
            {
/* <-MISALIGNED-> */ /* 126*/        if(match == null || value == null)
/* <-MISALIGNED-> */ /* 127*/            return false;
/* <-MISALIGNED-> */ /* 130*/        for(int i = 0; i < match.length; i++)
/* <-MISALIGNED-> */ /* 131*/            if(value.equals(match[i]))
/* <-MISALIGNED-> */ /* 132*/                return true;
/* <-MISALIGNED-> */ /* 135*/        return false;
            }



if(value != null)
                {/* 234*/            match = new String[1];
/* 235*/            match[0] = value;
                } else
                {
/* 238*/            Object bean = TagUtils.getInstance().lookup(super.pageContext, name, null);
/* 239*/            if(bean == null)
                    {/* 240*/                JspException e = new JspException(messages.getMessage("getter.bean", name));


/* 243*/                TagUtils.getInstance().saveException(super.pageContext, e);
/* 244*/                throw e;
                    }


/* 248*/            try
                    {
/* <-MISALIGNED-> */ /* 248*/                match = BeanUtils.getArrayProperty(bean, property);    //获取form中的select的value值
/* <-MISALIGNED-> */ /* 249*/                if(match == null)
/* <-MISALIGNED-> */ /* 250*/                    match = new String[0];
                    }
/* 254*/            catch(IllegalAccessException e)
                    {
/* <-MISALIGNED-> */ /* 254*/                TagUtils.getInstance().saveException(super.pageContext, e);
/* <-MISALIGNED-> */ /* 255*/                throw new JspException(messages.getMessage("getter.access", property, name));
                    }
登入後複製

三、沒有解決的問題,用html:option怎麼設定預設選中,其中沒有selected屬性html中<html:option></html:option>轉換成<option></option>時加了selected屬性的詳解



##

以上是html中轉換成時加了selected屬性的詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板