JSTL e JSF

Supondo que eu tenho um bean na sessão com as seguintes características:

public class MeuBean {
  Set names = new HashSet();

  public MeuBean() {
     names.add(new Name("A"));
     names.add(new Name("B"));
     names.add(new Name("C"));
  }
}

public class Name {
   private String name;
   /* get e set .... */

}

Por que a Sun no JSTL permite a iteração normal pelo bean usando a seguinte estrutura:

<c:forEach var="n" items="${meuBean.names}">
   &lt;c:out value="${n.name}" /&gt;<br/>
&lt;/c:forEach&gt;

e no JSF o componente dataTable não funciona com uma Collection do tipo Set?

&lt;h:dataTable var="n" value="#{meuBean.names}"&gt; &lt;h:column&gt; &lt;h:outputText value="#{n.name}" /&gt; &lt;/h:column&gt; &lt;/h:dataTable&gt;

Eu, sinceramente, acho muito estranho a Sun em uma especificação adotar uma estratégia e em outra utilizar uma estratégio diferente. Quem trabalhar com Hibernate e JSF vai sentir o q eu estou falando quando precisar mostrar uma tabela usando um campo tipo Set, que é muito comum quando se trabalha em tal platorma(Hibernate). Alguém sabe como contornar isso de uma forma objetiva? (Ter q implementar um DataModel do JSF não considero nada objetivo :slight_smile: )

Vai entender essas coisas… :slight_smile:

Mas na especificação diz quais o tipos que um datatable aceita… acho que por enquanto temos que nos virar com eles :smiley:

[quote]The value attribute of a dataTable tag references the data to be included in the table. This data can take the form of
• A list of beans
• An array of beans
• A single bean
• A javax.faces.model.DataModel
• A java.sql.ResultSet
• A javax.servlet.jsp.jstl.sql.ResultSet
• A javax.sql.RowSet
[/quote]

bjos

Esse tipo de coisa é fogo! Por causa de uma coisa tão “simples”, temos q dar uma volta imensa! :roll:

Pois é… quem sabe na próxima versão eles não mudam isso? :smiley:

bjos