Dúvida sobre Struts

2 respostas
Rafael_Afonso

Olá:

Estou começando a estudar Struts agora. Para tanto, estou usando o tutorial que saiu na Java Magazine no. 6. No código da página lista.jsp há o seguinte código:

<logic:iterate id="func" name="funcs">
    <tr>
      <td><jsp:getProperty name="func" property="nome"/></td>
      <td><jsp:getProperty name="func" property="email"/></td>
      <td><jsp:getProperty name="func" property="cargo"/></td>
      <td><jsp:getProperty name="func" property="sexo"/></td>
    </tr>
  </logic:iterate>

Quero modificar a página de tal forma que ao aparecer o nome, este seja um link para a página “preencheform.do” para editar o funcionário equivalente. Minha idéia original foi assim:

<logic:iterate id="func" name="funcs">
    <tr>
      <td><html:link page="/preencheform.do?func=<%= ((Funcionario)func).getEmail()%>"><jsp:getProperty name="func" property="nome"/></html:link></td>
      <td><jsp:getProperty name="func" property="email"/></td>
      <td><jsp:getProperty name="func" property="cargo"/></td>
      <td><jsp:getProperty name="func" property="sexo"/></td>
    </tr>
  </logic:iterate>

Mas não deu certo. Ao inves do link aparecer como http://127.0.0.1:8080/exemplostruts/preencheform.do?func=[email removido] apareceu http://127.0.0.1:8080/exemplostruts/preencheform.do?func=<%= ((Funcionario)func).getEmail()%>.
Alguem tem alguma idéia?

Grato,

2 Respostas

ricardolecheta

olá Ubiratam,

[dica]
eu não sei porque na revista eles colocaram <jsp:getProperty…
se existem taglibs do struts para fazer este trabalho…

use essa:
<%@ taglib uri="/WEB-INF/struts-bean" prefix=“bean” %>

aí faça:

&lt;bean&#58;write name="func" property="email" scope"session|request"/&gt;

coloque o scope se precisar…
[/dica]

este html:link tem umas coisas interessantes, veja:
para fazer um link: link.do?nome=Ricardo, vc pode fazer assim:

&lt;html&#58;link page="/link.do" paramId="nome" paramName="func" paramProperty="nome"&gt;Título do Link&lt;/html&#58;link&gt;

caso precise colocar vários parâmetros no link, tipo?
link.do?nome=Ricardo&idade=22, vc pode usar um java.util.Map.

map = new HashMap();

map.put(“nome”,“Ricardo”);

map.put(“idade”,“22”);

e coloque este Map na bean Funcionario por exemplo, não esqueça de fazer os get/set para o map

aí para fazer o link faz assim:

&lt;html&#58;link page="/link.do" name="func" property="map"&gt;Link com MAp&lt;/html&#58;link&gt;

então o html:link monta o link de acordo com o name/value no teu Map

espero ter ajudado :smiley:

Rafael_Afonso

Ricardo:

Neste post do JavaFree Já haviam me passado a respeito da tag <html:link> com os atributos paramName e paramProperty. As sugestões com o mapa para <html:link> e <bean:write> são novas para mim (assim como tudo o que diz respeito a struts).
Obrigado pela ajuda.

Criado 16 de setembro de 2003
Ultima resposta 16 de set. de 2003
Respostas 2
Participantes 2