Boa tarde,
Sou iniciante em JSF e estou me deparando com o seguinte erro:
javax.faces.FacesException: javax.el.ELException: /view/alterarsenhacartao/formulario.xhtml @31,35 rendered="#{supridoBean.exibirCPFRG}": Error reading ‘exibirCPFRG’ on type br.com.pdcase.suprimento.pessoa.service.SupridoBean_$$_javassist_seam_13
Não consigo entender o que tem de errado, este tipo de erro é geralmente disparado por que?
Esse exibirCPFRG é um booleano normal, igual outras propriedades que são exibidas nesta tela. mas o erro da nesse cara.
Grato pela ajuda!
Eu boolean tá com is? Se sim, tente escrever o método com is no xhtml.
qualquer coisa, troque que is para get e tente.
Olá!
o booleano não está com is, então alterei para pegar o get. o erro gerado é esse agora:
javax.el.PropertyNotFoundException: /view/alterarsenhacartao/formulario.xhtml @31,35 rendered="#{supridoBean.getExibirCPFRG}": Property ‘getExibirCPFRG’ not found on type br.com.pdcase.suprimento.pessoa.service.SupridoBean_$$_javassist_seam_7
E o get EXISTE na classe supridoBean.
??
[quote=developer.schneider]Olá!
o booleano não está com is, então alterei para pegar o get. o erro gerado é esse agora:
javax.el.PropertyNotFoundException: /view/alterarsenhacartao/formulario.xhtml @31,35 rendered="#{supridoBean.getExibirCPFRG}": Property ‘getExibirCPFRG’ not found on type br.com.pdcase.suprimento.pessoa.service.SupridoBean_$$_javassist_seam_7
E o get EXISTE na classe supridoBean.
??
:/[/quote]Com o get não precisa escrever no xhtml. Eu já vi implementação onde ele não achasse o isMetodo ou alguma coisa assim. Por isso perguntei.
Coloca o código onde o método está sendo utilizado, mas apenas ele, precisa da página toda não.
@Name("supridoBean")
@Scope(ScopeType.CONVERSATION)
public class SupridoBean extends AbstractWebBean implements Serializable {
private Boolean exibirCPFRG = false;
public Boolean getExibirCPFRG() {
return exibirCPFRG;
}
public void setExibirCPFRG(Boolean exibirCPFRG) {
this.exibirCPFRG = exibirCPFRG;
}
}
Resumindo a classe, a declaração está assim. Há vários métodos internos na classe que alteram essa booleana, nao colei pq ficaria bem extenso.
E no html…
<h:commandButton id="alterar" value="Alterar"
rendered="#{supridoBean.exibirCPFRG}"
action="#{supridoBean.alterarSenhaCartao}" style="width:130px;"
styleClass="rich-button" />
tente com is:
public boolean isExibirCPFRG() {
return exibirCPFRG;
}
O erro persiste.
Coloquei um @In no atributo booleano e o erro mudou:
javax.el.ELException: /view/alterarsenhacartao/pesquisar.xhtml @37,102 value="#{supridoBean.idGestor}": Error reading ‘idGestor’ on type br.com.pdcase.suprimento.pessoa.service.SupridoBean_$$_javassist_seam_7
Se removo o @In volta o erro anterior… não tenho idéia do pq disso!
Substituindo por is:
javax.el.PropertyNotFoundException: /view/alterarsenhacartao/formulario.xhtml @31,35 rendered="#{supridoBean.isExibirCPFRG}": Property ‘isExibirCPFRG’ not found on type br.com.pdcase.suprimento.pessoa.service.SupridoBean_$$_javassist_seam_7
Assim como não precisa do get, não precisa do is
rendered="#{supridoBean.exibirCPFRG}"
//OU
rendered="#{supridoBean.exibirCPFRG == true}"
Ambos geram o mesmo erro.
javax.servlet.ServletException: javax.el.ELException: /view/alterarsenhacartao/formulario.xhtml @31,35 rendered="#{supridoBean.exibirCPFRG == true}": Error reading ‘exibirCPFRG’ on type br.com.pdcase.suprimento.pessoa.service.SupridoBean_$$_javassist_seam_7
rendered="#{supridoBean.exibirCPFRG}"
removi isso, e agora está estourando erro em outro campo e assim por diante… não sei como arrumar
Pessoal, resumi meu html a isso:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:r="http://richfaces.org/rich" xmlns:a="http://richfaces.org/a4j"
xmlns:s="http://jboss.com/products/seam/taglib"
xmlns:pd="http://www.pdcase.com.br/ui" template="#{template}">
<ui:define name="csuName">
<h:outputText value="#{messages['alterar_senha_cartao']}"
styleClass="transacao" />
</ui:define>
<ui:define name="content">
<r:panel bodyClass="pageTitle" style="border:0;">
<h:outputText value="#{messages['alterar_senha_cartao']}"
styleClass="transacao" />
</r:panel>
<h:form id="senhaCartao">
<a:keepAlive beanName="supridoBean" />
<h:commandButton id="alterar" rendered="#{supridoBean.exibirCPFRG}" value="Alterar" style="width:130px;"
styleClass="rich-button" />
</h:form>
</ui:define>
</ui:composition>
Ai no bean, eu setei como FALSE essa propriedade exibirCPFRG e o controle não foi exibido. FUNCIONOU.
Porém, quando executo alguma ação, ou método, da o erro do post.
O que isso pode ser???
Exceção no código ou o que? Eu não consigo entender o motivo deste erro… se é um erro de código ou um mapeamento faltando… como disse sou iniciantaço em JSF.
Pessoal esta tela tava muito bugada.
Criei a classe bean e a view do zero e funcionou.
Não sei qual era o problema, mas está resolvido.