-1

在 JSF 支持 bean 中,我将值定义为,

private List<Cite> cites = new ArrayList<Cite>();

并且Cite有一个类似的字符串

Cite {
    private String value;
}

JSF 代码

 <h:panelGroup>                 
    <h:outputText value="Cite"/>
    <h:inputText id="citeTxt" style="width:75px" value="#{manualDataEntryRegText.cite}">
       <f:ajax execute="@this" render="citeTxt" />
    </h:inputText>
    </h:panelGroup>


<h:panelGroup>  
    <h:commandButton value="Add" action="#{manualDataEntryRegText.editCite}">
        <f:ajax execute="@this" render="dtCites" />
    </h:commandButton>
</h:panelGroup>


<h:panelGroup>
    <h:selectManyListbox style="width:75px" id="dtCites" value="#{manualDataEntryRegText.cites}" var="cite" size="3">
        <c:selectItems id="citeSelectItems" value="#{cite.value}" />
        <c:ajax event="change" />
    </h:selectManyListbox>
</h:panelGroup>
4

2 回答 2

1

修改您的列表如下:

<h:selectManyListbox style="width:75px" id="dtCites" value="#{manualDataEntryRegText.cites}" size="3" converter="citeConverter" ...>
    <f:selectItems value="#{citeBean.allCites}" var="cite"
itemLabel="#{cite.value}" itemValue="#{cite}" />
</h:selectManyListbox>

并且不要忘记创建和添加一个@FacesConverterforCite类(基本示例可以在Mkyong 的教程中找到)将所有值(value列表框和itemValue选择项)绑定为纯字符串。

于 2013-04-18T20:25:21.330 回答
0

列表应该是一个SelectItem列表:

List<SelectItem> list = new ArrayList<SelectItem>();

SelectItem s  = new SelectItem(cite.value, "lable");
lilst.add(s)

 <f:selectItems id="citeSelectItems" value="#{bean.list}" />
于 2013-04-18T20:24:45.160 回答