当前位置:Gxlcms > html代码 > html中<html:option></html:option>转化成<option></option>时加了selected属性的详解

html中<html:option></html:option>转化成<option></option>时加了selected属性的详解

时间:2021-07-01 10:21:17 帮助过:43人阅读

一、概念介绍

stust1中html标签的使用,其中有html:select,html:option,详情如下

<html:select>

<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

<html:select>有一个size属性,它表示同时显示的选项的数目,如上例中的size为1,则只同时显示一个选项。还有一个multiple属性,当其为true时,该选择列表就允许多选。用户可以通过鼠标的拖动,或是按住Ctrl键进行多选。

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

value1 value2 value3 value4 value5 value6 value7 value8 value9 value10

当multiple属性为true时,在ActionForm中对应的属性应是一个数组类型以便同时向其赋上用户选中的多个值。

<html:option>

<html:option>标记是<html:select>标记的选项,每个<html:option>将在选择框中代表一个选项。有如下代码所示:

<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>

可以看出,使用两个<html:option>间的部分来表示用户所见到的内容。当然,也可以使用<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属性的详解的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行