【问题标题】:seam create drop down menu for a form, error接缝为表单创建下拉菜单,错误
【发布时间】:2010-07-13 23:12:51
【问题描述】:

我正在尝试为表单创建 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 信息 [生命周期] 警告:FacesMessage(s) 已入队,但可能尚未显示。 sourceId=managerForm:appField[severity=(ERROR 2), summary=(value is not valid), detail=(value is not valid)]

我无法弄清楚我在这里犯了什么错误。

【问题讨论】:

    标签: seam


    【解决方案1】:

    你在谈话吗?如果不指定范围,您的 SFSB 将位于对话上下文中。你开始对话了吗?

    【讨论】:

    • 不,我还没有开始对话。这种形式适合什么范围?页面?
    猜你喜欢
    • 2011-03-10
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多