簡體   English   中英

使用SEAM 2.1.2和JBOSS 4.2.3GA的組合框中出現錯誤

[英]error in combobox using SEAM 2.1.2 and JBOSS 4.2.3GA

我正在嘗試在一個sean項目上創建一個組合框,並且sean標簽不能識別我的會話bean方法,但是如果我在一個簡單的表中顯示列表,那么一切正常。

我的會話bean PaisSB.java:

軟件包br.com.logical.prepark.session;

導入java.util.List; 導入javax.persistence.EntityManager;

導入org.jboss.seam.ScopeType; 導入org.jboss.seam.annotations.Factory; 導入org.jboss.seam.annotations.In; 導入org.jboss.seam.annotations.Logger; 導入org.jboss.seam.annotations.Name; 導入org.jboss.seam.annotations.Out; 導入org.jboss.seam.annotations.Scope; 導入org.jboss.seam.annotations.datamodel.DataModel; 導入org.jboss.seam.annotations.datamodel.DataModelSelection; 導入org.jboss.seam.faces.FacesMessages; 導入org.jboss.seam.log.Log;

導入br.com.logical.prepark.entity.bean.Pais;

@Scope(ScopeType.APPLICATION)@Name(“ paisSB”)公共類PaisSB {

@DataModel私有列表lstPais;

@In(必需=假)@Out(必需=假)@DataModelSelection專用Pais pais;

@在私有EntityManager實體管理器中;

@Logger私有靜態日志日志;

@SuppressWarnings(“ unchecked”)@Factory(“ lstPais”)public String listar(){

  lstPais = (List<Pais>) entityManager.createQuery("select pais from Pais pais").getResultList();

  if (lstPais.size()==0 ){
     return "/pages/parametro/consultarParametro.xhtml";
  }else{
     FacesMessages.instance().add("Pais #{pais.nome} teste");
     return null;
  }

}

}

我的entitybean Pais.java:

軟件包br.com.logical.prepark.entity.bean;

導入java.util.List;

導入javax.persistence.Column; 導入javax.persistence.Entity; 導入javax.persistence.Id; 導入javax.persistence.OneToMany; 導入javax.persistence.Table;

導入org.hibernate.validator.Length; 導入org.hibernate.validator.NotNull; 導入org.jboss.seam.ScopeType; 導入org.jboss.seam.annotations.Name; 導入org.jboss.seam.annotations.Scope;

@Name(“ pais”)@Table(name =“ pais”)@Entity @Scope(ScopeType.APPLICATION)公共類Pais實現java.io.Serializable {

private static final long serialVersionUID = 1L;

@Id
private int id;

@NotNull @Length(min=5, max=45)
@Column(name="NM_PAIS")
private String nome;

@OneToMany(mappedBy="pais")
private List<Parametro> lstParametro;

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public List getLstParametro() {
    return lstParametro;
}

public void setLstParametro(List<Parametro> lstParametro) {
    this.lstParametro = lstParametro;
}

@Override
public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + id;
    return result;
}

@Override
public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    Pais other = (Pais) obj;
    if (id != other.id)
        return false;
    return true;
}

}

標簽頁內parametros.xhtml

<h:selectOneMenu value="#{parametro.pais}" required="true">                      
<s:selectItems value="#{paisSB.listar}" var="pais" label="#{pais.nome}" noSelectionLabel="Please Select..."/>
<s:convertEntity />
</h:selectOneMenu>

堆棧跟蹤

javax.faces.FacesException:javax.el.PropertyNotFoundException:/pages/parametro/consultarParametro.xhtml @ 30,119 value =“#{paisSB.listar}”:在br.com.logical.prepark.session類型上找不到屬性“ listar”位於org.jboss.seam.ui.component.UISelectItems.getValue(UISelectItems.java:161)處的java.faces.component.UISelectItems.getValue(UISelectItems.java:144)處的.PaisSB _ $$ _ javassist_seam_2。位於com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:801)的renderkit.RenderKitUtils.getSelectItems(RenderKitUtils.java:296)位於com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer。 java:280)位於javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861)位於com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:242)位於com.sun.faces.renderkit .html_basic.GridRenderer.renderRow(GridRenderer.java:178)在com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:126)在javax.face org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)上org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)上的s.component.UIComponentBase.encodeChildren(UIComponentBase.java:837) org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:215)上的.richfaces.renderkit.doEncodeChildren(PanelRenderer.java:220)在org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase。 :121),位於javax.faces.render.Renderer.encodeChildren(Renderer)處,位於javax.faces.component.UIComponent.enComponentAll(UIComponent.java:936)處,位於javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)處。 javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)上的java:148)javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)上javax.faces.component.UIComponent.encodeAll(UIComponent) .java:942)(位於com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592),位於org.ajax4js) org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)的com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)的f.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)在com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)在com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)在javax.faces.webapp.FacesServlet.service(FacesServlet .java:266)位於org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)位於org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)位於org.jboss.seam。 org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)處的servlet.SeamFilter $ FilterChainImpl.doFilter(SeamFilter.java:83)在org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter(SeamFilter。 org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)處org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter(Seam java:69) org.jboss.seam.web.ExceptionFilter.doFilter(Filter.java:69)位於org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter(SeamFilter.java:69)位於org.jboss org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter(SeamFilter.java:69)上的.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java :178),位於org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290),位於org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390),位於org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter。 org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)處org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter(SeamFilter.java:69)處org.jboss.seam org.jboss.seam.servlet.SeamFilter $ FilterChainImpl.doFilter(SeamFilter.java:69)的org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java的.web.LoggingFilter.doFilter(LoggingFilter.java:60) :53)在org.jboss org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain)上的org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)上的.seam.servlet.SeamFilter $ FilterChainImpl.doFilter(SeamFilter.java:69) .java:235),位於org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96),位於org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96),位於org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)。位於org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)的catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java: 230)在org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)在org.apache.catalina.authenticator處的org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) org.jboss.web.tomcat.s的.AuthenticatorBase.invoke(AuthenticatorBase.java:432) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)上的ecurity.JaccContextValve.invoke(JaccContextValve.java:84)在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)在org.apache.catalina.connector的org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)的.CoyoteAdapter.service(CoyoteAdapter.java:262)org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:583) )在org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:446)在java.lang.Thread.run(Thread.java:619)在由:javax.el.PropertyNotFoundException:/ pages /parametro/consultarParametro.xhtml @ 30,119 value =“#{paisSB.listar}”:在com.s的br.com.logical.prepark.session.PaisSB _ $$ _ javassist_seam_2類型上找不到屬性“ listar” javax.faces.component.UISelectItems.getValue(UISelectItems.java:141)上的un.facelets.el.TagValueExpression.getValue(TagValueExpression.java:73)... 68更多

謝謝!

在bean PaisSB中,您聲明了lstPais,而不是listar,因此PaisSb中沒有listar,這就是錯誤消息的意思。

您需要將lstPais重命名為listar,反之亦然。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM