Setando Valores no Vraptor ![Resolvido]

7 respostas
juniorsatanas
Para eu setar um valor eu faço assim :
public void salva(Solicitacao solicitacao) {
        Transaction tx = session.beginTransaction();
        solicitacao.setSoliStatus("Ativo");

        solicitacao.setSoliDataAtendimento(new Date());
        solicitacao.setSoliDataContato(new Date());
        solicitacao.setSoliDataSolicitacao(new Date());
        solicitacao.setSoliStatusSolicitacaoNome("CAC - ENTRADA NA SOLICITAÇÃO - 1");
        session.save(solicitacao);
        tx.commit();
    }
Gostaria de setar o valor
solicitacao.setSoliUsuario("USUÁRIO LOGADO DO SPRINGSECURITY");

Guevara me deu uma dica para mostrar o usuário :

<div id="topoadm">
                                        <!-- Inicio da div logout -->
                                        <div id="logout">
                                            <sec:authorize ifNotGranted="ROLE_ANONYMOUS">
                                                USUÁRIO LOGADO NO SISTEMA S.I.G.I.:<%= request.getUserPrincipal().getName()%>
                                                <a /j_spring_security_logout"/>&quot;&gt;Sair</a>
                                            &lt;/sec:authorize&gt;
                                        &lt;/div&gt;
                                        &lt;!-- Fim da div logout  --&gt;
                                    &lt;/div&gt;

Ficou Perfeito !

Agora gostaria de saber como pegar este valor : request.getUserPrincipal().getName() e setar no banco !

public void salva(Solicitacao solicitacao) {
        Transaction tx = session.beginTransaction();
        solicitacao.setSoliStatus("Ativo");

        solicitacao.setSoliDataAtendimento(new Date());
        solicitacao.setSoliDataContato(new Date());
        solicitacao.setSoliDataSolicitacao(new Date());
        solicitacao.setSoliStatusSolicitacaoNome("request.getUserPrincipal().getName()");
        session.save(solicitacao);
        tx.commit();
    }

7 Respostas

R

Ola, @juniorsatanas.

Se o seu objeto UserPrincipal, estiver no escopo do request, é só vc injetar o ServletRequest no seu controller e recuperar o mesmo, segue o exemplo abaixo:

@Resource
public class LoginController {

	private Result result;
	private UsuarioDao usuarioDao;
	private SessionUser sessionUser;
	private ServletRequest request;

	public LoginController(Result result, UsuarioDao usuarioDao, SessionUser sessionUser,ServletRequest request) {
		this.result = result;
		this.usuarioDao = usuarioDao;
		this.sessionUser = sessionUser;
		this.request = request;
	}

	@Get
	@Path("/login")
	public void login() {
		request.getParameter("o_seu_parametro_no_request");
	}
}

Assim voce pode recuperar qualquer objeto no request, ai é só setar no seu objeto para persistir,

[]'s

juniorsatanas

rcnweb Boa Tarde !

Isso usando Spring Security ?

jr.

juniorsatanas
não intendi !

Abraço 

jr.

não intendi !

Abraço

jr.

R

Fala,

no caso do spring security nunca trabalhei, mas pelo o exemplo que eu vi, se estiver no escopo do request vc consegue pegar o objeto UserPrincipal, este é o seu parametro no request, naum eh?

[]'s

Lucas_Cavalcanti

receba um HttpServletRequest no construtor e faça:

solicitacao.setSoliStatusSolicitacaoNome(request.getUserPrincipal().getName());
R

Ih foi mal…

Era HttpServletRequest inves de ServletRequest, como o nosso amigo Lucas disse…

Peço desculpas pelo engano mais foi so um HTTP na frente…rsrsrs…

[]`s

juniorsatanas

Lucas Cavalcanti Boa noite !

Vou testar e da o retorno aqui !

Ficou bem rápido com Spring Security + Vraptor !

Abraço.

Criado 9 de março de 2011
Ultima resposta 9 de mar. de 2011
Respostas 7
Participantes 3