栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Struts2选择标签-动态添加选项

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Struts2选择标签-动态添加选项

实际上,Struts2

select
标签不允许在
option
标签正文中使用html
标签。这是因为它使用
list
属性以具有键/值对的对象形式提供数据。您可以使用
listKey
listValue
定义对象的哪些属性将用于呈现选项。您可以查看《
UI标签参考指南》中的
select
标签。它具有许多属性,可让您自定义呈现html。

select标记的实际用法:很少使用。如果要显示固定大小的列表或在JSP中通过OGNL创建的地图,这将很有用。例如

<s:select label="Months"       name="months"       headerKey="-1" headerValue="Select Month"       list="#{'01':'Jan', '02':'Feb', [...]}"       value="selectedMonth"       required="true"/>

对于大列表,请考虑使用

autocompleter
小部件。您还可以使用自动完成程序作为选择框,或选择小部件作为自动完成程序。您可以在Struts2Jquery Showcase中看到的所有示例
select
autocompleter
小部件。

从Struts1迁移到Struts2时,您会遇到呈现呈现的html

select
标签的问题,因为Struts2不允许在标签主体内使用选项。因此,可以通过
prepare()
操作方法来构造选项列表。您可以通过阅读此答案找到此用例的示例。

为什么选择这种方法是可取的,因为您是 从控制器 而不是从视图中使用模型,并且当模型 准备
显示时,您正在使用一些标签或小部件来呈现html或填充DOM。或者,您可以使用Ajax或Angular服务从Struts2控制器加载模型。数据以JSON格式传输。JSON是在Java和Javascript框架之间传输数据的非常强大的工具。


现在,如果您仍想使用地图

select
通过迭代器呈现html 标签,则可以使用以下代码。

<select id="monthId" name="form.monthId">  <s:iterator var="month" value="%{months}">    <s:if test="month.value != 'May'">      <option value="${month.key}" ${month.key == form.monthId?'selected="selected"':''}>        <s:property value="%{month.value}"/>      </option>    </s:if>   </s:iterator></select>

请注意,由于Struts请求包装程序,用于预选选项的EL表达式应有权访问valueStack变量。请参阅我们如何在框架中使用JSTL。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409102.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号