`
610622106
  • 浏览: 12340 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

【转】web中下拉列表的几种实现

    博客分类:
  • web
阅读更多
【原文地址】http://hi.baidu.com/muxil/blog/item/695c2ecef62c1d3cb700c8d8.html

web中下拉列表的几种实现

总结一下关于web上使用下拉框的情况

从数据库中获得数据List,将数据放到Request里面
         使用setAttribute(”AList”,AList)
A中有2个属性(String id,String value)

1.         使用JSTL的forEach方式
<select name=”xx” ……..>
<c:forEach items="${AList}" var="p" >
         <c:choose>
                 <c:when test="${xxx == p.id}">
                         <option value='<c:out value="${p.id}"/>' selected="selected">
                                         <c:out value="${p.value}"/>
                         </option>
                 </c:when>
         <c:otherwise>
                         <option value='<c:out value="${p.id}"/>'>
                                 <c:out value="${p.value}"/>
                         </option>
                 </c:otherwise>
         </c:choose>       
<c:forEach>
</select>

2.         使用struts的标签
<html:select property=”xxx”>
<html:options collection="AList" labelProperty="value" property="id" />
</html:select>

查一下struts的api文档,可以看到select 中选项有3 taglib可以使用。
第一种直接使用把所有选项写在中间。

<html:option value="0-15">0-15</html:option>
<html:option value="15-20" >15-20</html:option>
<html:option value="20-30" >20-30</html:option>
<html:option value="20 or above">30 or above</html:option>



第二种:把选项放在一个Collection中(这里使用List).在实际项目中,更多的是可能数据来源于db,文件等。这种情况用得比较多。

<html:options collection="AList" property="value" labelProperty="label"/>
把option放在list中的过程在Action中作处理
//prepare the age selector list.
List ageList =new ArrayList();
ageList.add(new LabelValueBean("0-15","0-15"));
ageList.add(new LabelValueBean("15-20","15-20"));
ageList.add(new LabelValueBean("20-30","20-30"));
ageList.add(new LabelValueBean("30 or above","30 or above"));
request.setAttribute("AList",AList);



这里使用了LabelValueBean,可以不用的,象
<html:options collection="AList" labelProperty="value" property="id" />
只要在AList中填入的bean有value和id属性就可以

第三种,把此list 作为Form 的一个属性.
<html:optionsCollection property="AList" />
在Form 中添加AList 的setter和getter. Form中作如下处理。
//the list can be a form property.
f.setAgeList(AList);

1.         从数据库中获得数据,你应该在Action里面取得数据后,将数据放到Request里面
2.         数据取出来后放在一个List或Collection或Map里面,我习惯用List
3.         从List或其它的容器中取数据应该用<html:options> 或<html:optionsCollection>
4.         <html:options> 和<html:optionsCollection>外层必须用<html:select property="">,所以这个属性你必须在FormBean里定义
5.         由于你要用到这些标签,所以你必须定义FormBean
6.       
从Action取数据,以List为例

List list = xxxxx;//从数据库中取得下拉列表中的数据
request.setAttribute("list",list);

在页面显示

<html:form action="xxxx">
...
<html:select property="xxx">
<html:options collection="list" labelProperty="下拉框中显示的内容,一般是name或其它相似属性" property="各选项对应的值,一般是id" />
</html:select>
...
</html:form>



补充一点点:

因为数据你要从 数据库去取, 所以一般在 action 里调用 DAO ,作为 request 的一个属性传到页面上; 这时一般用 <html:options .../> 标签

另外,如果数据不从数据库去取,而是代码固定的,则一般把这种放到 ActionForm 里,作为属性在页面上取,这时一般用 <html:optionsCollection ... />
分享到:
评论

相关推荐

    python中selenium操作下拉滚动条的几种方法汇总

    在python中有几种方法解决这种问题,简单介绍下,给需要的人: 方法一)使用js脚本直接操作,方法如下: js=var q=document.getElementById('id').scrollTop=10000 driver.execute_script(js) 或: js=var q=...

    软件界面设计工具_3款合集

    Balsamiq Mockups是一款免费的带有手绘风格的原型设计软件,可以帮助你设计桌面应用软件,Web 2.0 站点, RIA富网络应用程序, Web站点和Web应用软件。 功能和亮点: 操作方面:拖拽,控件分组,甚至元素之间的对齐...

    ABAP 开发技巧

    ABAP-SAP的几种(代)出口类型 Web_dynpro-关于WEBDYNPRO的编程开发(一) ABAP-FOR ALL ENTRIES IN 注意点 ABAP-根据T-CODE找BADI ABAP-根据T-CODE找BAPI ABAP-UPLOAD文件时常用的数据转换 关于using和changing ...

    asp.net知识库

    如何在Asp.Net1.1中实现页面模板(所谓的MasterPage技术) Tool Tip 示例(FILTER版) Tool Tip示例 (htc版) 一个.net发送HTTP数据实体的类 按键跳转以及按Enter以不同参数提交,及其他感应事件 动态控制Page页的...

    ASP.NET中DropDownList下拉框列表控件绑定数据的4种方法

    DropDownList在html中的呈现对应的是select,下面让我们来看一下DropDownList绑定数据的几种方法。 一、把Array数组绑到DropDownList 代码如下: string[] Month =new string[7]{ “January”, “February”, ...

    C#编程经验技巧宝典

    74 &lt;br&gt;0107 如何获得字符串中数字或字母的长度 74 &lt;br&gt;0108 如何获得字符串中某个数字的位置 75 &lt;br&gt;0109 获得字符串中汉字的个数 76 &lt;br&gt;0110 获得字符串中指定后几位字符 76 &lt;br&gt;0111 ...

    原型设计,axure9最全组件库

    4.包含了界面模型、设备模型、流程元素、标注元素、交互手势等丰富的素材内容,在界面模型中包含了近两百个移动端及WEB端界面模型,其中涵盖了各类常见的界面布局和功能场景。当产品设计初期阶段,可以用界面模型来...

    jQuery权威指南-源代码

    4.7.2 下拉列表框中的事件应用/104 4.8 列表应用/109 4.9 网页选项卡的应用/114 4.10 综合案例分析—删除数据时的提示效果在项目中的应用/116 4.10.1 需求分析/116 4.10.2 效果界面/117 4.10.3 功能实现/118 ...

    IIS6.0 IIS,互联网信息服务

    修改绑定的IP地址:转到“Web站点”窗口,再在“IP地址”后的下拉菜单中选择所需用到的本机IP地址“192.168.0.1”。 2.修改主目录:转到“主目录”窗口,再在“本地路径”输入(或用“浏览”按钮选择)好自己网页...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -重新设计模拟树的下拉列表的实现,避免选中某项后的闪烁。 +2009-11-21 v2.1.5 +Tree优化。 -修正Expanded项和Checked项的状态在回发改变后不能保持的BUG。 -GetNodeById更名为FindNode,保持和...

    Excel2007图表完全剖析 3/8

    7.2.4 使用“有效性”下拉列表创建动态图表 199 7.2.5 在图表中使用动态区域 201 7.2.6 创建滚动图表 204 7.2.7 修改滚动条示例显示最近12个月 206 7.3 创建高级图表 206 7.3.1 温度计图表 206 7.3.2 ...

    vc++ 应用源码包_1

    DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI服务,另类获取系统服务详细 大家都知道,现在流行的检测硬件软件视乎很神秘,我们要获得各种信息好像比较难.但大多数这种软件或多或少的使用了WMI,如果...

    vc++ 应用源码包_6

    DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI服务,另类获取系统服务详细 大家都知道,现在流行的检测硬件软件视乎很神秘,我们要获得各种信息好像比较难.但大多数这种软件或多或少的使用了WMI,如果...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。 2、 Ajax...

    vc++ 应用源码包_2

    DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI服务,另类获取系统服务详细 大家都知道,现在流行的检测硬件软件视乎很神秘,我们要获得各种信息好像比较难.但大多数这种软件或多或少的使用了WMI,如果...

    vc++ 应用源码包_5

    DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI服务,另类获取系统服务详细 大家都知道,现在流行的检测硬件软件视乎很神秘,我们要获得各种信息好像比较难.但大多数这种软件或多或少的使用了WMI,如果...

    vc++ 应用源码包_3

    DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI服务,另类获取系统服务详细 大家都知道,现在流行的检测硬件软件视乎很神秘,我们要获得各种信息好像比较难.但大多数这种软件或多或少的使用了WMI,如果...

    ExtAspNet_v2.3.2_dll

    -修正extjs最新版本(v3.2.2)中的一个bug,如果下拉列表中存在两个相同的Text,则SelectedValue返回值永远是第一个Text的值(feedback:ben.zhou)。 -应用补丁#6593, #6621(feedback:vbelyaev)。 +修正IE7下Grid分页...

    ASP.NET的网页代码模型及生命周期

    创建一个单文件页模型,在【文件】按钮中选择【新建文件】选项,在弹出对话框中选择【Web窗体】或在右击当前项目,在下拉菜单中选择【添加新建项】选项即可创建一个.aspx页面,如图4-2所示。 图4-2 创建单文件页...

    JavaScript笔记

    也是一种广泛应用于客户端Web开发的脚本语言) 基于对象:网页中的一切元素都是假象!不需要new,即可直接使用 事件驱动:JavaScript的执行都是由事件引发 解释执行:先读到的先执行,后读到的会替代先读的 可以...

Global site tag (gtag.js) - Google Analytics