Jsf

Olá =).

No trecho de código

<h:selectOneMenu styleClass=“textotabela” id=“nat”
value="#{USuMBean.natureza}"
immediate=“true” required=“true”>
<f:selectItems value="#{USuMBean.listaNatureza}" /> #
</h:selectOneMenu>

A linha (#) está com o seguinte erro:
According to the TLD, deferred-value is specified for the attribute value of the tag handler com.sun.faces.taglib.jsf_core.SelectItemsTag, but the argument for the setter method is not a javax.el.ValueExpression

Não estou conseguindo identificar qual é o erro. Alguém sabe como resolver?

Utilize a Tag [cod][/dod] para facilitar o entendimento do código!!!

Assim é bem melhor…

Trecho código:

<h:selectOneMenu styleClass="textotabela" id="nat" value="#{USuMBean.natureza}" immediate="true" required="true"> <f:selectItems value="#{USuMBean.listaNatureza}" /> # </h:selectOneMenu>

Erro:

According to the TLD, deferred-value is specified for the attribute value of the tag handler com.sun.faces.taglib.jsf_core.SelectItemsTag, but the argument for the setter method is not a javax.el.ValueExpression

Obrigada por ter apresentado a minha pergunta de forma mais adequada, André =)

Na lista de selectItems listaNatureza você está setando o atributo value com que valor?

Pelo que entendi da sua pergunta, listaNatureza é um arrayList de Naturezas, sendo que Natureza são Strings.

Posta ai o código do USuMBean tb. E se possível o faces-config.xml, se vc estiver usando é claro.

dev.rafael, o código do é USuMBean realmente grande. Sim, estou usando o faces-config.xml.

faces-config.xml

<?xml version="1.0" encoding="windows-1252"?>
<!DOCTYPE faces-config PUBLIC
  "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
  "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config xmlns="http://java.sun.com/JSF/Configuration">
  <managed-bean>
    <managed-bean-name>AdminMBean</managed-bean-name>
    <managed-bean-class>MBean.Admin</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>
  <managed-bean>
    <managed-bean-name>USuMBean</managed-bean-name>
    <managed-bean-class>MBean.Usuario</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>
  
   <navigation-rule>
    <navigation-case>
      <from-outcome>admin</from-outcome>
      <to-view-id>/admin.jsp</to-view-id>
    </navigation-case>
    
  </navigation-rule>
</faces-config>

Muito Obrigada pelo interesse em resolver meu problema =).

Mesmo assim seria melhor q vc o postasse aqui. Se for tão grande assim poste pelo menos o código do método “getListaNatureza”.

Postando os códigos, tomara que isso ajude a entender o que está acontecendo =)

[code]public Usuario() {
Iterator it = this.buscarNaturezas().iterator();
while( it.hasNext() ) {
String valor = (String)it.next();
listaNatureza.add( new SelectItem(valor,valor));
}

    listaSis.add( new SelectItem("xx","wwwwww"));
    listaSis.add( new SelectItem("xx","mmmmmmm"));
    listaSis.add( new SelectItem("yy","bbbbbbb"));
    listaSis.add( new SelectItem("yy","zzzzzzzzzzzzz"));
    listaSis.add( new SelectItem("aa","ccccccccccccccccc"));
    listaSis.add( new SelectItem("ee","uuuuuuuuuuuuuu"));
    
    email = this.getUsuario().getEmail();
    emailGerente = this.getUsuario().getGerente().getEmail();
    
    try
    {
        this.setSolicitacoesProprias( this.buscarUltimasSolicitacoesUsuario());
      
    }
    catch(Exception e) {
          e.printStackTrace();
          setErroMsg(e.getMessage()); 
    }        
    
}
[/code]
public static Collection buscarNaturezas()
    {
       LinkedList list = new LinkedList();
        list.add("hjk");
        list.add("nkd");
        list.add("hjk");
 return list;
    }
 public void setNatureza(String natureza) {
        this.natureza = natureza;
    }

    public String getNatureza() {
        return natureza;
    }

    public void setListaNatureza(List listaNatureza) {
        this.listaNatureza = listaNatureza;
    }

    public List getListaNatureza() {
        return listaNatureza;
    }

option, qual servidor vc está usando? Vc já tentou usar JSF2 ao invés do 1.1?

Estou usando o JBoss 4.0.4 GA

Não, dev.rafael, ainda não tentei usar o JSF2. É compatível com a versão do JBoss que estou usando? Pelo que pesquisei, o JBoss 4.0.4 não suporta algumas coisas =/

Isso mais parece ser um bug. A mensagem de erro q vc postou…

According to the TLD, deferred-value is specified for the attribute value of the tag handler com.sun.faces.taglib.jsf_core.SelectItemsTag, but the argument for the setter method is not a javax.el.ValueExpression  

… diz q na taglib o atributo value está marcado como do tipo javax.el.ValueExpression (deferred-value) mas o método setValue na classe SelectItemsTag não recebe um parâmetro desse tipo. Para confirmar isso, tente rodar esse mesmo código em algum outro servidor JEE como o Glassfish.

Muito obrigada, dev.rafael.

Vou testar aqui =)