你好,我在这个组合中有一个问题:selectCheckboxMenu:
我有2个calss客户和电话。
客户拥有plusiere手机
列出手机dejat包含3个电话(phone1,phone2,Phone3)。 和限时优惠phoneNumbers列表包含一部手机(phone1)。
但问题compente p:限时优惠selectCheckboxMenu显示3个comobox不检查。
如何解决这个问题,谢谢你的帮助。
第xhtml页:
<h:form>
<p:selectCheckboxMenu value="#{customerBeansController2.phones}" label="Phone" converter="entrantConverter">
<f:selectItems value="#{customerBeansController2.c2.phoneNumbers}" var="c" itemValue="#{c}" itemLabel="#{c}" />
</p:selectCheckboxMenu >
</h:form>
ManagerBeans:
private List<Customer> customers = new ArrayList<>();
private List<Phone> phones = new ArrayList<>();
private Customer c2;
@PostConstruct
public void init() {
customers = customerFacade.findAll();
this.c2=customerFacade.find(1);
phones = phoneFacade.findAll();
}
实体电话:
@Entity
public class Phone implements java.io.Serializable {
private static final long serialVersionUID = 1L; @Id
private Integer id ; @Column(name="number")
private String number;
@Column(name="type")
private Integer type;
......}
实体客户:
@Entity
public class Customer implements java.io.Serializable {
@OneToMany(fetch=FetchType.EAGER)
private List<Phone> phoneNumbers = new ArrayList<>();
.....}
我要求Primfeces专家的所有人帮助我,因为我坚持这个任务已经一个月了 请和谢谢你Avence
转换器:
@FacesConverter("entrantConverter")
public class EntrantConverter implements Converter {
@EJB
private session.PhoneFacadeLocal phoneFacade;
@Override
public Object getAsObject(FacesContext fc, UIComponent uic, String value) {
if (value != null && value.trim().length() > 0) {
return phoneFacade.find(Integer.parseInt(value));
} else {
return null;
}
}
@Override
public String getAsString(FacesContext fc, UIComponent uic, Object object) {
if (object != null) {
return String.valueOf(((Phone) object).getId());
} else {
return null;
}
}
}