У меня есть p: selectOneMenu, все значения просматриваются правильно, но только первый в моем списке можно выбрать, например, в моем списке у меня есть адреса электронной почты, я могу выбрать все, кроме почты, отправляются только по первому из них в списке. Мой JSF код:
p: selectOneMenu получить только первое значение из списка праймеров JSF
<p:dataTable value="#{additionalOrdersBean.additionalOrdersList}"
var="additionalOrders" rowIndexVar="lp" id="myTable" editable="true>
<p:column>
<p:selectOneMenu id="recipient" value="#{additionalOrdersBean.mailTo}" converter="#{mailConverter}" required="true" requiredMessage="#{loc['fieldRequired']}">
<f:selectItems value="#{buildingBean.buildingList2}" var="mail" itemLabel="#{mail.mail1}" itemValue="#{mail.mail1}" />
<f:selectItems value="#{buildingBean.buildingList2}" var="mail" itemLabel="#{mail.mail2}" itemValue="#{mail.mail2}" />
<f:selectItems value="#{buildingBean.buildingList2}" var="mail" itemLabel="#{mail.mail3}" itemValue="#{mail.mail3}" />
</p:selectOneMenu>
<h:message for="recipient" style="color:red"/>
<h:commandButton value="#{loc['send']}" action="#{additionalOrdersBean.sendProtocol()}" onclick="sendProtocolDialog.hide()"/>
</p:column>
</p:dataTable>
Мой боб:
private String mail1;
private String mail2;
private String mail3;
public List<Building> getBuildingList2() {
buildingList2 = getBldRepo().findByLocationId(lid);
return buildingList2;
}
Может кто-нибудь знает, как это исправить? Я не буду отправлять электронную почту по выбранному адресу не только по первой в моем списке. Спасибо
Не уверен в вашей текущей проблеме, но я просто могу сказать, что вам нужно удалить бизнес-логику в 'getBuildingList2', так как она называется несколько раз. См. Http://stackoverflow.com/q/2090033/1065197. Вероятно, это решение может решить и вашу текущую проблему. –
Но когда я положил его в p: диалог работает нормально, только в p: dataTable нет. – 4Money
Вы прочитали ссылку и поняли проблему? –