2
  • 我在 ul-list 中添加了一个 ui:repeat 以生成一个无序列表
  • 通过jQuery Tag-It 小部件,列表可以很好地编辑(不幸的是,primefaces 还没有类似的组件)
  • 保存表单时,我无法访问新创建的值(只有其他 primefaces 组件的值)

XHTML

<ul id="keywordList">
<ui:repeat value="#{bean.selectedObject.keywords}" var="keyword">
    <li><h:outputText value="#{keyword.name}" /></li>
    </ui:repeat>
</ul>

public class Bean implements Serializable {
    private MyObject selectedObject;
}

模型

public List<String> getKeywords() {
    return keywords;
} 

public void setKeywords(List<String> keywords) {
    this.keywords = keywords;
}

任何想法,我如何访问添加到 UL 列表中的值?谢谢!

编辑: bean 是会话范围的

4

1 回答 1

1

根据其文档演示,jQuery tag-it 插件使用(可配置的)名称语法自动创建隐藏的输入元素item[tags][]。您应该能够从ExternalContext#getRequestParameterValuesMap()JSF 中的 HTTP 请求参数值映射中获取它,如下所示:

String[] tags = FacesContext.getCurrentInstance().getExternalContext()
    .getRequestParameterValuesMap().get("item[tags][]");

您也可以将其设置为托管属性,但这要求 bean 具有请求范围。

@ManagedProperty("#{paramValues['item[tags][]']}")
private String[] tags;
于 2012-06-06T17:41:13.240 回答