Dúvida na iteração do foreach usando Velocity

3 respostas
rodrigo_corinthians

Galera boa noite.

O Velocity não está conseguindo iterar a segunda lista “$listColumns” parece q ele se perde por causa da primeira iteração, alguém já teve esse problema??

Segue trecho do código.

1. class StrutsConfig { 2. private List listColumns; 3. // Set e Get 4. } 5. 6. context.put("struts", ListStrutsConfig); 7. ... 8. 9. #foreach($struts in $listStrutsConfig) 10. <form name="$struts.getNameForm()"> 11. #set( $listColumns = $struts.getListColumns()) 12. #foreach($listColumns in $columnsObject) 13. <field property="formView.$columnsObject.getNameProperty()" depends="#if($columnsObject.isNotNull())required#end"> 14. <arg key="label.name"/> 15. </field> 16. #end 17. </form> 18. 19. #end
Procurei no google e não achei nada caso alguém tenha alguma solução ou referência ficarei agradecido, obrigado.

Sem mais, Rodrigo.

3 Respostas

rodrigo_corinthians

Obrigado pela resposta, então resolvi o problema o segundo #foreach eu declarei de forma errada :wink:.

Tô ligado que não precisa colocar o get mas eu acho q colocando o nome do método inteiro fica mais visível para dar manuntenção.

Valew!

Sem mais, Rodrigo.

fabiofalci

Cara, tu esta invertendo a ordem no for
Primeiro eh o item e depois a lista.

http://velocity.apache.org/engine/devel/user-guide.html#loops

No primeiro for, o que eh a lista? o struts ou o ListStrutsConfig?
Pelo codigo de cima acho que eh o struts…

E no segundo for, esta invertido também. Tenta assim:

#foreach($columnsObject in $listColumns)
seufagner

rodrigo_corinthians, você não precisa usar algo como $struts.getListColumns()… use $struts.listaColumns que funciona igualzinho.

Quanto a questão foco do tópico, você pode explicar o que é “se perder na primeira iteração” ? O que acontece ?

Posta aí que eu tento ajudar…

[]s

Criado 2 de maio de 2007
Ultima resposta 3 de mai. de 2007
Respostas 3
Participantes 3