Passando parametros

6 respostas
mateusprado

pessoal, estou com uma duvida, e sei que é simples.
estou passando um parametro para uma query e minha duvida é como eu pego o um construtor de outra classe.

por exmplo:

meu metodo list:

public class PermissaoEmpresa {

	public List<SelectItem> getEmpresas() {
		
		List<Empresa> listaEmpresas = PermissaoEmpresaDAO
				.ListaPermissaoEmpresa(parametro id_usuario);
		List<SelectItem> listaSelect = new ArrayList<SelectItem>();

		for (Empresa e : listaEmpresas) {
			listaSelect.add(new SelectItem(new String(e.getNM_FANTASIA())));
		}
		return listaSelect;
	}

	private Empresa empresa = new Empresa();

	private List<Empresa> listaEmpresas = PermissaoEmpresaDAO
			.ListaPermissaoEmpresa(parametro id_usuario);

	public Empresa getEmpresa() {
		return empresa;
	}

	public void setEmpresa(Empresa empresa) {
		this.empresa = empresa;
	}

	public List<Empresa> getListaEmpresas() {
		return listaEmpresas;
	}

	public void setListaEmpresas(List<Empresa> listaEmpresas) {
		this.listaEmpresas = listaEmpresas;
	}

}

meu loginBean:

public class LoginManager {

	private BigDecimal id_usuario;
	private String nm_usuario;
	private String senha_usuario;
	private String msg_erro;
	private boolean logado = false;

	//get and set

	public String login() {

		try {

			Usuario usuario;
			String senha_cript;

			usuario = UsuarioDAO.getUsuario(this.nm_usuario.toUpperCase());
			this.id_usuario = usuario.getID_USUARIO();

			if (usuario == null) {
				this.msg_erro = "Usuario não existe";
				return "LoginManager.ERRO";
			}

			senha_cript = Criptografia.criptografar(this.senha_usuario
					.toUpperCase());
			if (!senha_cript.equals(usuario.getSENHA_USUARIO_MD5())) {
				this.msg_erro = "Senha errada";
				return "LoginManager.ERRO";
			}

			this.logado = true;
			return "LoginManager.MENU_PRINCIPAL";

		} catch (Exception e) {
			this.logado = false;
			this.msg_erro = "Erro Não cadastrado - " + e.getMessage();
			return "LoginManager.ERRO";
		}

	}


}

quero passar o parametro id_usuario, que esta em meu bean de login, para a lista.

e por final o meu dao:

public static List<Empresa> ListaPermissaoEmpresa(BigDecimal id_usuario) {
		

		Session s = HibernateUtil.getSession();

		String sqlPermissao = "SELECT DISTINCT "
				+ "       CTRL_EMPRESA.ID_EMPRESA,"
				+ "       CTRL_EMPRESA.NM_FANTASIA, "
				+ "       CTRL_EMPRESA.CNPJ_EMPRESA "
				+ "   FROM CTRL_EMPRESA,"
				+ "              CTRL_PERMISSAO,"
				+ "              CTRL_USUARIO_GRUPO"
				+ "        WHERE CTRL_EMPRESA.ID_EMPRESA         = CTRL_PERMISSAO.ID_EMPRESA"
				+ "          AND CTRL_PERMISSAO.ID_GRUPO_USUARIO = CTRL_USUARIO_GRUPO.ID_GRUPO_USUARIO"
				+ "          AND CTRL_USUARIO_GRUPO.ID_USUARIO   = :ID_USUARIO "
				+ "        ORDER BY CTRL_EMPRESA.ID_EMPRESA ";

		SQLQuery qryPermissao = s.createSQLQuery(sqlPermissao);

		qryPermissao.setResultTransformer(Transformers
				.aliasToBean(Empresa.class));

		qryPermissao.setParameter("ID_USUARIO", id_usuario);

		return qryPermissao.list();
	}
}

obigado pessoal e até mais.

6 Respostas

mduques

Bom não sei se entendi…

criar mais um construtor

private BigDecimal id_usuario

public PermissaoEmpresa(id_usuario){

this.id_usuario = id_usuario;

listaEmpresas = PermissaoEmpresaDAO

.ListaPermissaoEmpresa(parametro id_usuario);

}

public List getEmpresas() {

List<Empresa> listaEmpresas = PermissaoEmpresaDAO   
            .ListaPermissaoEmpresa(this.id_usuario);   
    List<SelectItem> listaSelect = new ArrayList<SelectItem>();   

    for (Empresa e : listaEmpresas) {   
        listaSelect.add(new SelectItem(new String(e.getNM_FANTASIA())));   
    }   
    return listaSelect;   
}

Ajudou?

mateusprado

entao…naverdade eu preciso pegar o id_usuario do login. ele já existe, só nao estou conseguindo estanciar o objeto de uma classe para a outra.

mduques

veja bem…

Se voce estiver no LoginBean faz isso:



this.logado = true;

PermissaoEmpresa perm = new PermissaoEmpresa(id_usuario);

return LoginManager.MENU_PRINCIPAL;



a origem das consultas são os bean se vc tiver que consultar de outro bean, certifique-se que seu login bean é de sessao, pegue ele e passe o id_usuario para o PermissaoEmpresa.

PermissaoEmpresa nao deve conhecer os beans… voce deve estruturar o PermissaoEmpresa para realizar as consultas atraves dos parametros.

mateusprado

amigo. vc pode postar um exmplo implementando minhas classes? eu nao posso apenas chamar o id usuario daqela sessao no permissaoEmpresa?

obrigado pela atenção.

mateusprado

alguem pode me ajudar nisso? sei que para muitos isso é uma questao mt simples.

abraços,

mateusprado

mduques, me de uma ajuda nisso por favor.

Criado 7 de julho de 2008
Ultima resposta 9 de jul. de 2008
Respostas 6
Participantes 2