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

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

黄舟
黄舟原創
2017-07-03 10:08:492114瀏覽

一、概念介紹

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

以下是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>

可以看出,使用兩個

另一個重要的內容就是它所傳遞給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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn