Erro ao busca dados no Banco

6 respostas
Mislene

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.

6 Respostas

denis_gariglio

Ola Mislene, poderia postar seu codigo por favor?

[]s

romarcio

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?

Mislene

Código da VwdisciplinaController

@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(); 
	     }   
  	 
}

Código da view

<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>		
</html>

Por favor me ajudem, não consigo achar erro nenhum...

romarcio

Tem uma coisa estranha aqui nesse código:

&lt;h:outputLabel value="Curso:*" for="nome"/&gt;  
         &lt;p:selectOneMenu id="nome" value="#{vwdisciplinaController.vwdisciplina.id.nome}"&gt;  
            &lt;f:selectItems value="#{vwdisciplinaController.vwdisciplinas}" 
                                  var="nome" itemValue="#{nome.id.nome}" temLabel="#{nome.id.nome}"/&gt;    
&lt;/p:selectOneMenu&gt;

Acredito que deveria ser assim:

&lt;h:outputLabel value="Curso:*" for="nome"/&gt;  
         &lt;p:selectOneMenu id="nome" value="#{vwdisciplinaController.vwdisciplina.id}"&gt;  
            &lt;f:selectItems value="#{vwdisciplinaController.vwdisciplinas}" 
                                  var="nome" itemValue="#{nome.id}" temLabel="#{nome.nome}"/&gt;    
&lt;/p:selectOneMenu&gt;
Mislene

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.

romarcio

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.
Criado 7 de março de 2013
Ultima resposta 8 de mar. de 2013
Respostas 6
Participantes 3