Dúvida sobre Struts

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=funcionario@email.com.br apareceu http://127.0.0.1:8080/exemplostruts/preencheform.do?func=<%= ((Funcionario)func).getEmail()%>.
Alguem tem alguma idéia?

Grato,

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=&quot;func&quot; property=&quot;email&quot; scope&quot;session|request&quot;/&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=&quot;/link.do&quot; paramId=&quot;nome&quot; paramName=&quot;func&quot; paramProperty=&quot;nome&quot;&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=&quot;/link.do&quot; name=&quot;func&quot; property=&quot;map&quot;&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:

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.