1

我有一个选择:

<h:selectOneMenu id="treeNode" label="#{msgs.treeNode}" value="#{treeNode}">
  <f:selectItems value="#{treeItems}" />
</h:selectOneMenu>

它使用这些 selectItems:

List<SelectItem> treeItems = new ArrayList<SelectItem>();
treeItems.add(new SelectItem("1", "Parent"));
treeItems.add(new SelectItem("2", "  Child 0 0"));
treeItems.add(new SelectItem("2", "    Child 0 0 0"));
treeItems.add(new SelectItem("2", "    Child 0 0 1"));
treeItems.add(new SelectItem("2", "  Child 0 1"));

我的问题是选择中的输出应该看起来像一棵树,但是由于空白已经消失,我有一个“平面”视图。

有没有办法可以将空白转换为不可破坏的空间?

谢谢强尼

4

2 回答 2

2

只需自己替换它们&nbsp;并将escape属性设置为false. 这是SelectItem构造函数的第 5 个参数。

List<SelectItem> treeItems = new ArrayList<SelectItem>();
treeItems.add(new SelectItem("1", "Parent", null, false, false));
treeItems.add(new SelectItem("2", "&nbsp;&nbsp;Child 0 0", null, false, false));
treeItems.add(new SelectItem("3", "&nbsp;&nbsp;&nbsp;&nbsp;Child 0 0 0", null, false, false));
treeItems.add(new SelectItem("4", "&nbsp;&nbsp;&nbsp;&nbsp;Child 0 0 1", null, false, false));
treeItems.add(new SelectItem("5", "&nbsp;&nbsp;Child 0 1", null, false, false));
于 2012-04-19T13:01:16.307 回答
0

在添加最后一个 treeItem 之后,您能否放置一个 foreach 迭代每个 SelectItem 并将每个空字符串“”替换为“ &nbsp;”?

于 2012-04-19T12:30:00.417 回答