Radio Button no Webwork 2.1.1

Olá

Sou novato em Webwork e estou com uma dúvida que acho que o pessoal que já mexe com ele poderia me ajudar.

Gostaria de criar um Radio Button na minha página HTML, mas com os valores vindo de um List ou ArrayList (qual é melhor?). Sei que com Struts isso da pra fazer, acredito que com o Webwork também. Procurei na documentação mas não achei como fazer isso vindo de um Objeto List, apenas fazendo estaticamente…

Valeu até aqui :wink:

E ae Marcos, blz?

Fazer isso não tem segredo algum, o único detalhe, é que você deve criar um objeto do tipo ArrayList na sua Action e criar métodos getters and setters pra ele… e no seu View (seja JSP ou Velocity) você usa a propriedade List.

Um exemplo bem simples (não testei, então pode ter erro de digitação).

classe

public class TesteAction extends ActionSupport {
  private ArrayList arrayList = new ArrayList();
  public String execute throws Exception {
    arrayList.add("Valor 1");
    arrayList.add("Valor 2");
    arrayList.add("Valor 3");
    arrayList.add("Valor 4");
    return SUCCESS; //abre seu arquivo de VIEW
  }

  public void setArrayList(ArrayList arrayList) {....}
  public ArrayList getArrayList() {...}
}

Agora na sua VIEW é simples
Arquivo JSP

<ww:radio name="'teste'" label="'Radio Button Teste'" "list=arrayList"/>

E usando Velocity

#tag (Radio "name='teste'" "label='Radio Teste'" "list=arrayList")

Um último detalhe é que o que irá mostra na tela e seu value interno serão os mesmo… se você por exemplo quiser mostrar na tela “Valor 1” e seu value interno seja “1”, invés de usar um ArrayList, você pode usar um HashMap.

Espero ter ajudado

só para completar.
se você for querer usar HashMap, talves os valores não irão ser apresentados na tela na forma que foram adicionados no Objeto, caso você queria algo ordenado, pode trocar o HashMap por TreeMap. Fica ae uma dica :wink: