a problem with SelectOneMenu
lcbdl888 Aug 18, 2008 7:27 PMHi,
I have a SelectOneMenu on my page. Everything is fine, except the default selected value of the menu is not the value in the database when I load the page. It is always null (Not Selected). Anybody can tell me why?
Thanks
<h:selectOneMenu id="service1" value="#{personHome.instance.serviceAssistant1}"> <s:selectItems value="#{codeTableManager.codeServiceAssistants}" var="sa" label="#{sa.fullName}" noSelectionLabel="Not Selected"/> <s:convertEntity /> <a:support reRender="service1Email" event="onchange"/> </h:selectOneMenu>
@Name("codeTableManager") @AutoCreate public class CodeTableManager { @In private EntityManager entityManager; @In CustomIdentity identity; @SuppressWarnings("unchecked") public List<CodeMarketingOffice> getCodeMarketingOffices() { return entityManager.createQuery("select office from CodeMarketingOffice office").getResultList(); } @SuppressWarnings("unchecked") public List<CodeMarketingRep> getCodeMarketingReps() { return entityManager.createQuery("select mr from CodeMarketingRep mr").getResultList(); } @SuppressWarnings("unchecked") public List<CodeMarketingRep> getCodeServiceAssistants() { return entityManager.createQuery("select sa from CodeServiceAssistant sa").getResultList(); } }
@Entity @Table(name="PERSON", uniqueConstraints= @UniqueConstraint(columnNames={"USERID_TXT"})) public class Person { public enum Status {ACTIVE, INACTIVE, NOT_IN_LDAP} @Id @GeneratedValue @Column(name="PERSON_ID") private Long id; @Column(name="FIRST_NAME_TXT", length=40) @NotNull private String firstName; @Column(name="LAST_NAME_TXT", length=40) @NotNull private String lastName; @Column(name="PRIMARY_PHONE_TXT", length=40) @PhoneValid private String primaryPhone; @Column(name="SECONDARY_PHONE_TXT", length=40) @PhoneValid private String secondaryPhone; @Column(name="WORK_EXTENSION_TXT", length=5) private String workExtension; @Column(name="USERID_TXT", length=10, unique=true) private String userId; @Column(name="EMAIL_ADDRESS_TXT", length=100) @Email private String emailAddress; @Column(name="STATUS_CODE", length=10) @Enumerated(EnumType.STRING) private Status status = Status.ACTIVE; @Temporal(TemporalType.TIMESTAMP) @Column(name="LAST_LDAP_SYNC_TS") private Date lastLDAPSynch; @Column(name="EMAIL_REMINDER_IND", nullable=false) @NotNull @Type(type="yes_no") private boolean acceptEmail = true; @Column(name = "PRODUCER_NAME", length = 40) private String producerName; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "MARKETING_REP_ID") private CodeMarketingRep marketingRep; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "SERVICE_ASSISTANT_ID1") private CodeServiceAssistant serviceAssistant1; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "SERVICE_ASSISTANT_ID2") private CodeServiceAssistant serviceAssistant2; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "OFFICE_ID") private CodeMarketingOffice marketingOffice; @Version @Column(name="VERSION_NUM") private Long version; public Long getId() { return id; } getters and setters ......