将ArrayList <String>转换为ArrayList <SelectItem>

rym*_*rym 2 java jsf

我有一个ArrayList<String>命名列表,我想将其转换为ArrayList<SelectItem>.我怎样才能做到这一点?

PS:JSF的selectItem

Bal*_*usC 8

根据您的问题历史记录,您使用的是JSF 2.在这种情况下,最好知道<f:selectItem>并且<f:selectItems>不再需要单个或一组SelectItem对象.只是一个普通的香草String甚至是Javabean也很好.

所以,

private String selectedItem;
private List<String> availableItems;

// ...
Run Code Online (Sandbox Code Playgroud)

<h:selectOneMenu value="#{bean.selectedItem}">
    <f:selectItems value="#{bean.availableItems}" />
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

应该在JSF 2中工作得很好.

或者,Javabeans的集合,假设它Foo具有属性idname.

private Foo selectedItem;
private List<Foo> availableItems;

// ...
Run Code Online (Sandbox Code Playgroud)

<h:selectOneMenu value="#{bean.selectedItem}">
    <f:selectItems value="#{bean.availableItems}" var="foo" itemValue="#{foo}" itemLabel="#{foo.name}" />
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

也可以看看: