2013-04-23 40 views
3

所以,这里的交易: 我有一个selectOneMenu用于在我看来:从selectOneMenu用于添加了selectedValue列出

<p:selectOneMenu value="#{personBean.person.personStates.state}" id="estadoRg" 
    converter="entityConverter"> 
    <f:selectItems value="#{stateBean.states}" var="state" 
     itemLabel=#{state.name}" itemValue="#{state}"> 
    </f:selectItems> 
</p:selectOneMenu> 

哪里personStates是包含人,状态N日期列表。 是否可以将itemValue中的值直接添加到personStates列表中? (我有一个addPersonState方法autobuilt在我的PersonModel中)

如果不是,我该怎么做? 我不想为我的personBean中的每个selectOneMenu(将是5)添加一个状态实例... 是否清楚?

回答

2

你应该通过selectedState值处理它,然后你可以将其绑定特定的人:

<p:selectOneMenu value="#{stateBean.selectedState}" id="estadoRg" 
    converter="entityConverter"> 
    <f:selectItems value="#{stateBean.states}" var="state" 
     itemLabel=#{state.name}" itemValue="#{state}"> 
    </f:selectItems> 
</p:selectOneMenu> 

这是怎样的方式p:selectOneMenu时,要能结合选择状态和人的调用方法:

<p:commandButton actionListener="#{personBean.matchStates}" /> 

和备份豆方法:

public void matchStates { 
    FacesContext facesContext = FacesContext.getCurrentInstance(); 
    ElContext elContext = facesContext.getELContext(); 
    Object stateBean = elContext.getELResolver().getValue(elContext, null, "stateBean"). 
    State selectedState = stateBean.getSelectedState(); 
    personList.get(index).setState = selectedState; 
} 
+0

好吧......那我的清介意......只是我正在改变的是该方法将由ajax ...... thnx处理 – 2013-04-23 11:37:11