Probelas no request

2 respostas
C

E ae pessoal… blz?

Bom, é o seguite… eu estou desenvolvendo um projetinho de teste aqui… mas estou com uma dificuldade… quem puder me dar um força!!!

É assim… meu usuário faz o login numa JSP. Nssa página de login eu passo um form que chama a action abaixo

<action path="/efetuaLogin" name="UserFormBean" type="br.com.xyz.struts.action.LoginAction"> <forward name="adm" path="/busca.jsp"></forward> <forward name="failure" path="/failure.jsp"></forward> </action>

a action LoginAction pega o form, persiste, e mapeia se ele for um ‘adm’ se logando.
O mapeamento redimensiona para uma página de busca (busca.jsp).

Nessa página de busca o usuário seleciona no combo a opção ‘cliente’ e entra com o código do mesmo. A página busca.jsp passa um form que chama a action abaixo:

<action path="/efetuaBusca" name="SearchFormBean" type="br.com.xyz.struts.action.BuscaAction"> <forward name="cliente" path="/controller1.jsp" /> <forward name ="error" path="/error.do"/> </action>

Na action BuscaAction eu pego os valores do form, faço a persistencia e retorno um objetoTO(cliente) e seto esse objeto no request:

request.setAttribute("clientTO", clientTO); return map.findForward("cliente");

no mapeamento redimensiono para a pagina de resposta (controller1.jsp) com os dados populados.

Ai vem o problema…
Nessa pagina de resutado (controller1.jsp)… eu quero clicar no nome do cliente e mandar para outra página com os detalhes
deste mesmo cliente. Só que não estou conseguindo…

Nessa JSP eu estou chamando a action /detailCliente assim:

<html:link action="/detailCliente" styleClass="buttonsGer"> <td align="center"><span class="label"/><bean:write name="clienteTO" property="nome" /></td> </html:link>

E no mapeamento:

<action path="/detailCliente" type="br.com.xyz.struts.action.DetailClienteAction"> <forward name ="ok" path="/detailCliente.jsp"/> <forward name ="error" path="/error.do"/> </action>

Só que na action DetailClienteAction eu não consigo pegar o cliente pelo request!
Eu tentei fazer assim:

ClienteTO clientTO = (ClienteTO) request.getAttribute("clienteTO").

e fazer a persitencia… se retornar o objeto do BD… eu mapeio um ‘ok’ que vai retornar a pagina detailCliente.jsp

mas não estou conseguindo… pois o request.getAttribute(“clienteTO”) está vindo nulo… A questão é que eu setei
o objeto no resquest antes… então não sei bem o que estou fazendo de errado…

como faço para pegar esse objeto cliente e persisti-lo novamente para uma outra página de detalhes???

agradeço que puder dar uma força…

vlw

2 Respostas

C

[RESOLVIDO]

vacilei… rsrs

esqueci de passar o parametro para a action…

C

Bom, qdo eu pensei que havia resolvido… rsrsrs

é o seguinte… até aqui está dando certo. Mas quando comecei a mexer no meu login, a coisa danou-se…

Durante toda a aplicação, vou estar setando objetos no setAttribute, e da JSP para a outra action, pegando os paramtros do objeto… com getParameter… + qqer coisa para persistir.

Só que eu preciso saber quem é meu usuário logado… já que cada tipo de usuário tem um acesso diferenciado…

Então, já no login, eu seto o usuário…

session.setAttribute("user", user);

direciono este usuário para sua respectiva pagina e mostro os dados. Acontece que vou sempre ter q pegar o user de alguma forma… verificar se ele é válido, amarrar ele na sessão… e etc… e só depois poder fazer as consultas e setar os objetos…

qual a melhor forma de fazer isso???
Alguem pode dar um força ai??
vlwwww

Criado 13 de julho de 2008
Ultima resposta 14 de jul. de 2008
Respostas 2
Participantes 1