在JSF中,输出List< SomeObj>的最短方法是什么?以逗号分隔的“名称"列表SomeObj的属性

在JSF中,输出List< SomeObj>的最短方法是什么?以逗号分隔的“名称

问题描述:

我有一个关于在JSF中将对象列表输出为逗号分隔列表的问题.

I have a question about outputing a list of objects as a comma separated list in JSF.

让我们说:

public class SomeObj {
  private String name;
  ... constructors, getters and setters ...
}

和列表< SomeObj>:

and List<SomeObj>:

List<SomeObj> lst = new ArrayList<SomeObj>();
lst.add(new SomeObj("NameA"));
lst.add(new SomeObj("NameB"));
lst.add(new SomeObj("NameC"));

将其输出为列表框,我可以使用以下代码:

to output it as a listbox I can use this code:

<h:selectManyListbox id="id1"
                  value="#{listHolder.selectedList}">
  <s:selectItems value="#{listHolder.lst}"
                   var="someObj"
                 label="#{someObj.name}"/>
  <s:convertEntity />
</h:selectManyListbox>

但是,以逗号分隔的按原样输出列表的最简单方法是什么?像这样:

But what is the easiest way to output the list as is, comma seperated ? Like this:

NameA, NameB, NameC

我应该使用JSTL< c:forEach/>或者可以是< s:selectItems/>标签也可以使用吗?

Should I use JSTL <c:forEach/> or may be the <s:selectItems/> tag can also be used ?

使用<ui:repeat>(来自facelets).类似于c:forEach

use <ui:repeat> (from facelets). It's similar to c:forEach

或在托管bean中预先计算逗号分隔的字符串,然后通过getter获取它.

Or pre-compute the comma-separated string in the managed bean, and obtain it via a getter.