2010-07-13 59 views
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)]

我無法弄清楚我在這裏犯了什麼錯誤。

回答

0

你在交談嗎?如果沒有指定範圍,您的SFSB將處於對話環境中。你開始了談話嗎?

+0

不,我還沒有開始談話。什麼範圍適合這種形式?頁? – Nish 2010-07-16 19:06:17