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