2013-10-01 26 views
2

我想为我的h:selectOneMenu设置一个默认值,但由于某种原因,第一个项目(见下文)不是第一个选择的项目。第三项是“默认选择”项目。默认为h:selectOneMenu与jsf

<h:selectOneMenu value="#{bookBean.discountPercentage}"> 
    <f:selectItem itemLabel="Please select a value: " noSelectionOption="true" /> 
    <f:selectItems value="#{bookBean.paymentMethods}" var="paymentMethod" 
        itemValue="#{paymentMethod.discountPercentage}" 
        itemLabel="#{paymentMethod}" required="true"/> 
    <f:ajax listener="#{bookBean.setDiscountValue}"/> 
</h:selectOneMenu> 

所以“请选择一个值”必须在列表中(这是)的第一个项目,它具有开放TE页面时要选择的值,而事实并非如此。

+0

你使用什么jsf版本? bookBean还有什么范围?你有没有调试过bookBean.discountPercentage? getter会在页面刷新时返回什么? – spauny

回答

4

的第一个项目是不是在selectOneMenu用于所选择的项目时的值通过值=“#{bookBean.discountPercentage}”返回不为空,并且等于从可用选项的选项。

+0

你说得对。我已经评估过这个问题,但我忘记了我的“discountPercentage”为默认值0,第三项的折扣百分比为0.感谢 – GregD