Results 1 to 8 of 8

Thread: What the set?

  1. #1
    RCruz is offline Member
    Join Date
    Mar 2013
    Posts
    6
    Rep Power
    0

    Default What the set?

    So... now I have another issue to wich I simply can't see a good reason for it to happen...

    Java Code:
    SEVERE: Error Rendering View[/users.xhtml]
    javax.el.PropertyNotFoundException: /users.xhtml @40,30 value="#{administradorMB.usuarioNovo.Acesso}": The class 'entidades.Guia' does not have the property 'Acesso'.
    	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:104)
    	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
    	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
    	at javax.faces.component.UIOutput.getValue(UIOutput.java:168)
    Here is the code where the "problem" shows up:
    Java Code:
    <h:outputLabel value="Novo nivel de acesso : " />
    <h:selectOneMenu value="#{administradorMB.usuarioNovo.acesso}" 
    				immediate="true">
    												
    				<f:selectItem
    						itemLabel="Administrador"
    						itemValue="1"/>
    				<f:selectItem
    						itemLabel="Usuário avançado"
    						itemValue="2"/>
    				<f:selectItem
    						itemLabel="Usuário básico"
    						itemValue="3"/>
    </h:selectOneMenu>
    Yes, administradorMB has a getter for usuarioNovo and yes, usuarioNovo (it's type is Guia) has a setter for acesso:

    Java Code:
    public Guia getUsuarioNovo() 
    {
    	return usuarioNovo;
    }
    and

    Java Code:
    public void setAcesso(int nAcesso) 
    {
    	this.acesso = nAcesso;
    }
    What I mostly can't understand is that this syntax work for the rest of the code, except in this one sentence: why?

  2. #2
    Tolls is offline Moderator
    Join Date
    Apr 2009
    Posts
    11,751
    Rep Power
    19

    Default Re: What the set?

    Does it have a getter for 'acesso'?
    That seems to be what it's looking for.
    Please do not ask for code as refusal often offends.

    ** This space for rent **

  3. #3
    RCruz is offline Member
    Join Date
    Mar 2013
    Posts
    6
    Rep Power
    0

    Default Re: What the set?

    It does have a getter too.

    Java Code:
    	public int getAcesso() 
    	{
    		return acesso;
    	}

  4. #4
    Tolls is offline Moderator
    Join Date
    Apr 2009
    Posts
    11,751
    Rep Power
    19

    Default Re: What the set?

    And that is in the entidades.Guia class?
    And there is no other class file left lying around (eg a previous version that did not have that property)?

    Because those error tend not to lie.
    So it must be picking up a Guia class from somewhere that does not have that property.
    Please do not ask for code as refusal often offends.

    ** This space for rent **

  5. #5
    RCruz is offline Member
    Join Date
    Mar 2013
    Posts
    6
    Rep Power
    0

    Default Re: What the set?

    I doesn't, in fact... That's also part of why I'm so puzzled. Here are the classes in full extent:

    Class Guia
    [SPOILER]
    Java Code:
    package entidades;
    
    public class Guia 
    {
    	private String login;
    	private String senha;
    	private int acesso;
    	
    	/*Metodo imprime instancia atual da classe.*/
    	public void print()
    	{
    		System.out.println("Login: " + login + "\nSenha: " + senha + "\nNível de Acesso: " + nivelDeAcesso() +"\n");
    	}
    	
    	/*Método retorna a correspondência em texto do nAcesso registrado.*/
    	public String nivelDeAcesso()
    	{
    		if((Integer)acesso == null) return "Nenhum";
    		if(acesso == 1) return "Administrador";
    		if(acesso == 2) return "Avançado";
    		if(acesso == 3) return "Simples";
    		return "Nenhum";
    	}
    	
    	/*Construtor padrão.*/
    	public Guia()
    	{
    		login = null;
    		senha = null;
    		acesso = 0;
    	}
    	
    	/*Construtor verifica e alimenta as propriedades de Guia.*/
    	public Guia(String log, String pas, int access)
    	{
    		if(log != null && pas != null && (Integer)access != null)
    		{
    			if(log.length() <= 30 && pas.length() <= 30 && access <= 3 && access >= 1)
    			{
    				login = log;
    				senha = pas;
    				acesso = access;
    			}
    		}
    	}
    	
    	/*Função verifica se os dados inseridos em guia estão de acordo com o banco de dados.*/
    	public boolean verificaIntegridade()
    	{
    		if(login == null || senha == null || (Integer)acesso == null) return false;
    		if(login.length() > 30 || senha.length() > 30 || acesso > 3 || acesso < 1) return false;
    		return true;
    	}
    	
    	/*-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    													Getters e setters
    	-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+*/
    	
    	public Guia getGuia()
    	{
    		return this;
    	}
    	
    	public String getLogin() 
    	{
    		return login;
    	}
    	public void setLogin(String login) 
    	{
    		this.login = login;
    	}
    	public String getSenha() 
    	{
    		return senha;
    	}
    	public void setSenha(String senha) 
    	{
    		this.senha = senha;
    	}
    	public int getAcesso() 
    	{
    		return acesso;
    	}
    	public void setAcesso(int nAcesso) 
    	{
    		this.acesso = nAcesso;
    	}
    	
    	public void setAcesso(String nAcesso)
    	{
    		this.acesso = new Integer(nAcesso);
    	}
    
    }
    [/SPOILER]


    Class AdministradorMB

    [SPOILER]
    Java Code:
    package managedbeans;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    import javax.faces.bean.ManagedBean;
    import javax.faces.context.FacesContext;
    import javax.faces.event.ValueChangeEvent;
    
    import entidades.ConNoticia;
    import entidades.Guia;
    
    @ManagedBean
    public class AdministradorMB 
    {
    	private List<Guia> listagem = new ArrayList<Guia>();
    	private Guia usuarioAtual, usuarioNovo;
    	
    	public void mudaAcessoNovo(ValueChangeEvent event)
    	{
    		
    		usuarioNovo.setAcesso((Integer)event.getNewValue());
    		FacesContext.getCurrentInstance().renderResponse();
    	}
    	
    	/*Método imprime todos os membros de listagem.*/
    	public void print()
    	{
    		int tamanho = listagem.size();
    		
    		for(int i = 0; i < tamanho; i++)
    			System.out.println("Login: " + listagem.get(i).getLogin() + "\nSenha: " + listagem.get(i).getSenha()
    					+ "\nNivel de acesso: " + listagem.get(i).nivelDeAcesso());
    	}
    	
    	/*Construtor instancia listagem com todas as entradas do banco de dados*/
    	public AdministradorMB() throws Exception
    	{
    		alimenta();
    		print();
    	}
    	
    	/*Método remove usuário do banco de dados.*/
    	public void remover(Guia parametro) throws Exception
    	{
    		ConNoticia con = new ConNoticia();
    		con.excluir(parametro);
    		
    		for(int i = 0; i < listagem.size(); i++) 
    			if(listagem.get(i).getLogin() == parametro.getLogin()) 
    			{
    				listagem.remove(i);
    				i = listagem.size() + 1;
    			}
    	}
    	
    	/*Função altera registro do usuário no banco de dados e o envia de volta à página de administração de usuários*/
    	public String alterar() throws Exception
    	{
    		List<Guia> ultimo = new ArrayList<Guia>();
    		Guia temp = new Guia();
    		ConNoticia con = new ConNoticia();
    		
    		con.editar(usuarioNovo);
    		
    		while(!listagem.isEmpty())
    		{
    			temp = listagem.remove(0);
    			if(temp.getLogin() == usuarioNovo.getLogin())
    			{
    				temp.setSenha(usuarioNovo.getSenha());
    			}
    			ultimo.add(temp);
    			temp = null;
    		}
    		
    		listagem = null;
    		listagem = ultimo;
    		
    		return "administrar";
    	}
    	
    	/*Método envia o usuário para edição.*/
    	public String editarUsuario(Guia parametro)
    	{
    		usuarioAtual = parametro;
    		usuarioNovo = parametro;
    		return "users";
    	}
    	
    	/*Método alimenta a listagem de usuários e resgata seu nível de acesso.*/
    	public void alimenta() throws Exception
    	{
    		ConNoticia con = new ConNoticia();
    		Map<String, String> temp;
    		List<String> chaves = null;
    		String log, pas;
    		
    		for(int i = 1; i < 4; i++)
    		{
    			temp = con.query(i);
    			chaves = new ArrayList<String>(temp.keySet());
    			
    			for(int j = 0; j < chaves.size(); j++)
    			{
    				log = chaves.get(j);
    				pas = temp.get(log);
    				listagem.add(new Guia(log, pas, i));
    			}
    			
    			temp = null;
    			chaves = null;
    		}
    	}
    
    
    	/*-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    													Getters e setters
    	-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+*/
    
    	public List<Guia> getListagem() 
    	{
    		return listagem;
    	}
    
    	public void setListagem(List<Guia> listagem) 
    	{
    		this.listagem = listagem;
    	}
    	public Guia getUsuarioNovo() 
    	{
    		return usuarioNovo;
    	}
    
    	public void setUsuarioNovo(Guia usuarioNovo)
    	{
    		this.usuarioNovo = usuarioNovo;
    	}
    
    	public Guia getUsuarioAtual()
    	{
    		return usuarioAtual;
    	}
    
    	public void setUsuarioAtual(Guia usuarioAtual) 
    	{
    		this.usuarioAtual = usuarioAtual;
    	}
    }
    [/SPOILER]

    Hope this might bring some light on the matter.

    P.S.: On time, how do I put the code on a "spoiler" box here on the forum and prevent this huge text block?
    Last edited by RCruz; 03-27-2013 at 03:04 PM.

  6. #6
    Tolls is offline Moderator
    Join Date
    Apr 2009
    Posts
    11,751
    Rep Power
    19

    Default Re: What the set?

    The only thing is the two setters, but that shouldn't throw the parser.
    What if you comment out one of them?
    Please do not ask for code as refusal often offends.

    ** This space for rent **

  7. #7
    RCruz is offline Member
    Join Date
    Mar 2013
    Posts
    6
    Rep Power
    0

    Default Re: What the set?

    The error persists, with either of them not comented on the code.

  8. #8
    Tolls is offline Moderator
    Join Date
    Apr 2009
    Posts
    11,751
    Rep Power
    19

    Default Re: What the set?

    I'd still look into some other version of the class on the classpath, then.
    Or add some debug code to ensure this is deploying correctly.
    Please do not ask for code as refusal often offends.

    ** This space for rent **

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •