Boa tarde pessoal estou tentando acessar alguns dados no banco através de uma view e não carrega nada no select o erro que está dando é:
Caused by: javax.el.PropertyNotFoundException: /pages/testedisciplina/formulario.xhtml @13,68 value="#{vwdisciplinaController.vwdisciplinas}": Target Unreachable, identifier 'vwdisciplinaController' resolved to null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:97)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:91)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1023)
at javax.faces.component.UIInput.validate(UIInput.java:953)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1204)
at javax.faces.component.UIInput.processValidators(UIInput.java:693)
at javax.faces.component.UIForm.processValidators(UIForm.java:240)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
at org.primefaces.component.fieldset.Fieldset.processValidators(Fieldset.java:197)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1081)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1159)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:72)
Por favor me ajduem já tentei de tudo e não consigo mais pensar em nada.
Obrigada.
Ola Mislene, poderia postar seu codigo por favor?
[]s
Target Unreachable, identifier 'vwdisciplinaController' resolved to null Parece que seu vwdisciplinaController ou talvez sua vwdisciplinas estão retornando null. Descubra o porque.
Tem certeza que a vwdisciplinas está sendo preenchida pela view?
Código da VwdisciplinaController
[code]@ManagedBean
@ViewScoped
public class VwdisciplinaController{
private Vwdisciplina vwdisciplina;
private List<Vwdisciplina> vwdisciplinas;
@Autowired
private IVwdisciplinaApplication vwdisciplinaApplication;
public Vwdisciplina getVwdisciplina() {
if(this.vwdisciplina == null)
this.vwdisciplina = new Vwdisciplina();
return vwdisciplina;
}
public void setVwdisciplina(Vwdisciplina vwdisciplina) {
this.vwdisciplina = vwdisciplina;
}
public List<Vwdisciplina> getVwdisciplinas() {
if(this.vwdisciplinas == null)
atualizarTabelaVwDisciplina();
return vwdisciplinas;
}
public void setVwdisciplinas(List<Vwdisciplina> vwdisciplinas) {
this.vwdisciplinas = vwdisciplinas;
}
private void atualizarTabelaVwDisciplina(){
vwdisciplinas = vwdisciplinaApplication.todos();
}
}[/code]
Código da view
[code]<p:fieldset legend=“Cadastrar Disciplina”>
<h:form id=“formulario”>
<p:growl id="message" showDetail="false" />
<h:inputHidden value="#{vwdisciplinaController.vwdisciplina}"/>
<h:panelGrid columns="2">
<h:outputLabel value="Curso:*" for="nome"/>
<p:selectOneMenu id="nome" value="#{vwdisciplinaController.vwdisciplina.id.nome}">
<f:selectItems value="#{vwdisciplinaController.vwdisciplinas}" var="nome" itemValue="#{nome.id.nome}" itemLabel="#{nome.id.nome}"/>
</p:selectOneMenu>
</h:panelGrid>
</h:form>
</p:fieldset>
[/code]
Por favor me ajudem, não consigo achar erro nenhum…
Tem uma coisa estranha aqui nesse código:
<h:outputLabel value="Curso:*" for="nome"/>
<p:selectOneMenu id="nome" value="#{vwdisciplinaController.vwdisciplina.id.nome}">
<f:selectItems value="#{vwdisciplinaController.vwdisciplinas}"
var="nome" itemValue="#{nome.id.nome}" temLabel="#{nome.id.nome}"/>
</p:selectOneMenu>
Acredito que deveria ser assim:
<h:outputLabel value="Curso:*" for="nome"/>
<p:selectOneMenu id="nome" value="#{vwdisciplinaController.vwdisciplina.id}">
<f:selectItems value="#{vwdisciplinaController.vwdisciplinas}"
var="nome" itemValue="#{nome.id}" temLabel="#{nome.nome}"/>
</p:selectOneMenu>
Boa noite Romarcio, fiz a alteração e ainda continua com o mesmo problema, estou começando a achar que o problema é a o mapeamento da VW que o hibernate não está conseguindo mapear os dados, não sei mais o que pensar, porque já fiz um monte de testes. O engraçado é que não passa nem da camada de visão não está reconhecendo o caminho para o controlador.
Muito obrigada pela atenção.
Algumas coisas que você pode verificar:
- se a injeção de dependências está injetando mesmo :
@Autowired private IVwdisciplinaApplication vwdisciplinaApplication;
- também pode verificar se a consulta do hibernate está retornando dados. Verifique se o seu método
vwdisciplinaApplication.todos() está retornando a lista com os dados da consulta.