0
我正在嘗試爲表單創建3個下拉菜單。第一個是LOB字段。第二個是應用領域,最後一個是CTA領域。 LOB和Application之間有一對多的關係。從應用程序到CTA有多種多樣的關係。接縫創建表單的下拉菜單,錯誤
CreateRequest.xhtml
<h:selectOneMenu id="lobField" value="#{manager.lob}" required="true">
<s:selectItems var="lob" value="#{lobs}" label="#{lob.lobDescription}" noSelectionLabel="Select LOB"></s:selectItems>
<s:convertEntity />
<a:support action="#{manager.loadApps}" ajaxSingle="true" event="onchange" reRender="appField,ctaField"/>
</h:selectOneMenu>
<a:outputPanel id="appField">
<h:selectOneMenu value="#{manager.app}" required="true">
<s:selectItems var="app" value="#{manager.applications}" label="#{app.applicationName}" noSelectionLabel="Select Application"></s:selectItems>
<s:convertEntity />
<a:support action="#{manager.loadCtas}" ajaxSingle="true" event="onchange" reRender="ctaField"/>
</h:selectOneMenu>
</a:outputPanel>
<a:outputPanel id="ctaField">
<h:selectOneMenu value="#{manager.cta}" required="true">
<s:selectItems var="cta" value="#{manager.ctas}" label="#{cta.ctaDescription}" noSelectionLabel="Select CTA"></s:selectItems>
<s:convertEntity />
</h:selectOneMenu>
ManagerBean.java
@Stateful
@Name("manager")
public class ManagerBean implements Manager {
@Logger
private Log log;
@In
StatusMessages statusMessages;
private Lob lob;
private Application app;
private Cta cta;
@PersistenceContext(type = PersistenceContextType.EXTENDED)
EntityManager entityManager;
@Out(required = false)
private List<Lob> lobs;
private List<Application> applications;
private List<Cta> ctas;
public void CreateRequest() {
System.out.println("Create Request");
System.out.println(app.getApplicationName());
}
public Lob getLob() {
return lob;
}
public void setLob(Lob lob) {
this.lob = lob;
}
public Application getApp() {
return app;
}
public void setApp(Application app) {
this.app = app;
}
public Cta getCta() {
return cta;
}
public void setCta(Cta cta) {
this.cta = cta;
}
public List<Lob> getLobs() {
return lobs;
}
public void setLobs(List<Lob> lobs) {
this.lobs = lobs;
}
public List<Application> getApplications() {
return applications;
}
public void setApplications(List<Application> applications) {
this.applications = applications;
}
public List<Cta> getCtas() {
return ctas;
}
public void setCtas(List<Cta> ctas) {
this.ctas = ctas;
}
@Destroy
@Remove
public void destroy() {
}
@Factory("lobs")
public void loadLobs() {
lobs = entityManager.createQuery("from Lob").getResultList();
}
public void loadApps() {
System.out.println("load apps called");
applications = lob.getApplicationList();
}
public void loadCtas() {
System.out.println("load ctas called====");
ctas = app.getCtaList();
System.out.println(ctas.size());
}
}
我能夠選擇LOB的值,並loadApps被調用。然後我也可以選擇應用程序。但是,當我選擇一個,我得到以下錯誤:
19:09:01,921 INFO [lifecycle] WARNING: FacesMessage(s) have been enqueued, but may not have been displayed. sourceId=managerForm:appField[severity=(ERROR 2), summary=(value is not valid), detail=(value is not valid)]
我無法弄清楚我在這裏犯了什麼錯誤。
不,我還沒有開始談話。什麼範圍適合這種形式?頁? – Nish 2010-07-16 19:06:17