Struts - <html:select>

2 respostas
ricardolecheta
Collection c = new ArrayList();

c.add(“1”);

c.add(“2”);

c.add(“3”);

isto está na minha formbean

agora eu quero mostrar isso no JSP em um <html:select>

mas não estou conseguindo, alguem pode ajudar? :wink:

2 Respostas

R

Olá ricardolecheta!

Na Action, vc faz o que tiver de fazer, carrega sua Collection e seta no escopo da página ou sessão.

Collection c = new ArrayList&#40;&#41;; 
c.add&#40;"1"&#41;; 
c.add&#40;"2"&#41;; 
c.add&#40;"3"&#41;; 

request.setAttribute&#40;"minhaCollectionDeStrings", c&#41;;

mapping.findForward&#40;"pagina-com-meu-select"&#41;;

Na página onde vc coloca o select

&lt;html&#58;select property="valorSelecionado"&gt;
  &lt;html&#58;options name="minhaCollectionDeStrings"&gt;
&lt;/html&#58;select&gt;

Para um Collection de Beans

Temos um bean Pais:

public class Pais &#123;
  String codPais;
  String nome;


 
  public Pais&#40;String codPais, String nome&#41; &#123;
    this.codPais = codPais;
    this.nome = nome;
  &#125;


  public void setIdPais&#40;String codPais&#41; &#123;
    this.codPais = codPais;
  &#125;


  public void setNome&#40;String nome&#41; &#123;
    this.nome = nome;
  &#125;


   
  public String getCodPais&#40;&#41; &#123;
    return codPais;
  &#125;


  public String getNome&#40;&#41; &#123;
    return nome;
  &#125;
&#125;

Na action vc cria uma Collection de países

Collection paises = new LinkedList&#40;&#41;; 

paises.add&#40;new Pais&#40;"BR", "Brasil"&#41;&#41;;
paises.add&#40;new Pais&#40;"ES", "Espanha"&#41;&#41;;
paises.add&#40;new Pais&#40;"PT", "Portugal"&#41;&#41;;

request.setAttribute&#40;"paises", paises&#41;;

mapping.findForward&#40;"pagina-com-meu-select"&#41;;

Na página onde vc coloca o select

&lt;html&#58;select property="pais"&gt;
  &lt;html&#58;options collection="paises" property="codPais" labelProperty="nome"/&gt;
&lt;/html&#58;select&gt;
ricardolecheta

valeu :stuck_out_tongue:

agora funcionou!

Criado 31 de maio de 2003
Ultima resposta 31 de mai. de 2003
Respostas 2
Participantes 2