Estou usando o Struts 2 e aconteceu o seguinte problema comigo, quando tenho uma lista no request a tag de iterator não consegue iterar, segue parte do código…
Action:
public void search() {
List listBean = new SimplePojoService().get(getSimpleBean());
if(listBean != null && !listBean.isEmpty()){
HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(HTTP_REQUEST);
request.setAttribute("simpleList", listBean);
}
}E no jsp fiz assim:
<s:iterator value="simpleList">
<tr>
<td><s:property value="id"/></td>
<td><s:property value="nome"/></td>
</tr>
</s:iterator>Pra fazer funcionar tive q criar um método “getSimpleList” que retorna a lista, o ruim que pra todos os meus actions teria q criar esse método de retorno, alguém sabe como usar a tag iterator pegando a lista direto do request?? Engraçado que no Struts 1 isso funcionava normalmente…
quando exectuar o método setListBean, automaticamente a sua variável listBean estará disponível no escopo do request pra você fazer o iterate.
Dentro o execute de sua action você faz uma chama a este método (setListBean) e, quando o struts2 fizer o redirect para o result definido no struts.xml, ele vai passar o seu listBean junto, possibilitando o iterate.
Olá ManchesteR, testei o seu código aqui e não funfou.
Olá lmprates, entaum entendi perfeitamente o que vc me disse mas o que eu pretendia era não ter esses métodos get/set e sim pegar o List q estava no request, pelo visto acho q não tem como fazer isso no Struts 2…
[quote=rodrigo_corinthians]Olá ManchesteR, testei o seu código aqui e não funfou.
Olá lmprates, entaum entendi perfeitamente o que vc me disse mas o que eu pretendia era não ter esses métodos get/set e sim pegar o List q estava no request, pelo visto acho q não tem como fazer isso no Struts 2…
Valew galera pelas respostas.[/quote]
entendi…to mandando um exemplo de itarator no struts2, talvez ajude