题
我有对象的列表,通过JPA q.getResultList()
制备。
我想在一个下拉使用它,但条纹“选项”标签不能接受列表中,只是Collection
,Enum
and
Map
。
进出口新的Java中,为什么也许List
可以转化为他们每个人,但我不知道我怎样才能解决这个问题。
(条纹选择,选项映射,-enumeration,-collection可以建立的下降来自先前提到的输入对象结构向下)
解决方案
的 选项收集的文档 强>标记表示:
写入一组
<option value="foo">bar</option>
标签到 根据内容页Collection
,Iterable
或Array
。每 集合中的元素是 由单个选项标记上表示的 这一页。使用标签和值 属性上的标签来命名 在所述对象的属性Collection
应该被用来 生成HTML选项的身体 标签和的价值属性 HTML标签选项分别。如果 任一个(或两者)的标签或值的 属性被省略的项目 本身将被用于 标签/值来代替 - 这样做是为了 简单类型的支持集合 像字符串和数字。E.g。标签声明,看起来 像:
<stripes:options-collection collection="${cats}" value="catId" label="name"/>
会导致容器外观为 一个
Collection
叫“猫”跨越 各种JSP范围和设置在 标签。然后,标签将继续 迭代通过集合 呼吁getCatId()
和getName()
每只猫以产生HTML的选项标签。
一个的 java.util.List
一> 强>是一个的 Collection
下,只是将它传递给上述标签的属性collection
。
其他提示
一个List
对象是Collection
对象:所述List
接口扩展了Collection
的。您可以使用List
对象,比如在你需要一个ArrayList
所有地方LinkedList
或Collection
。
在Enum
类型是一种静态列表的,通过声明一个类作为枚举,像这样:
public enum MyEnum {
FirstOption, SecondOption, ThirdOption;
}
在Map
类型是一个关联集;例如的Hashtable
,HashMap
和TreeMap
是Map
的所有实例。