# jsf+jsp und reflection



## nocturn (19. Dez 2009)

Moin!

Ich möchte eine Datenbankunabhängige Listendarstellung(f:datatable) erstellen.
Ich setze Hibernate, JSF und JSP ein.

[XML]
<h:dataTable var="artgroup"
	value="#{util:toArray(session.user.person.mandant.articlegroups,null,null)}">
	<%
		for (Field f : Articlegroup.class.getDeclaredFields()) {
	%>
	<h:column>
		<f:facet name="header">
			<%=f.getName()%>
		</f:facet>
		<%="<hutputText value=\"${artgroup."+f.getName()+"}\" />" %>
	</h:column>
	<%
		}
	%>
</h:dataTable>
[/XML]

Die Überschriften werden ausgegeben, die hutputText aber in den Browser übertragen.

Jemand eine Idee?


----------



## gman (19. Dez 2009)

[XML]
<h:dataTable var="artgroup"
	value="#{util:toArray(session.user.person.mandant.articlegroups,null,null)}">
	<%
		for (Field f : Articlegroup.class.getDeclaredFields()) {
	%>
	<h:column>
		<f:facet name="header">
			<%=f.getName()%>
		</f:facet>
		<hutputText value=\"${artgroup."+<%= f.getName() %> +"}\" />
	</h:column>
	<%
		}
	%>
</h:dataTable>
[/XML]

Das "hutput..." wird in deinem JSP-Code auch einfach nur als Zeichenkette ausgegeben. Versuch mal den JSP-Code auf den "value" des hutput-Tags zu beschränken.


----------



## nocturn (19. Dez 2009)

1 mom


----------



## mvitz (19. Dez 2009)

glaube bei gman war auch noch ein kleiner Fehler drin. WIe ist es mit:

[XML]<hutputText value="${artgroup.<%= f.getName() %>}" />[/XML]
oder
[XML]<hutputText value="${artgroup." + <%= f.getName() %> + "}" />[/XML]


----------



## nocturn (19. Dez 2009)

also 
[XML]<hutputText value="#{artgroup.<%=f.getName()%>}" />[/XML]
Meldet: The function getName must be used with a prefix

[XML]<hutputText value="#{artgroup['<%=f.getName()%>']}" />[/XML]
Meldet: Property '<%=f.getName()%>' not found on type de.....beans.Articlegroup

Und 
[XML]<hutputText value="#{artgroup." + <%= f.getName() %> + "}" />[/XML]
Meldet: Unterminated &lt;hutputText tag




[XML]<c:forEach items="#{artgroup.class.declaredFields}" var="cf">
	<h:column>
		<hutputText value="#{artgroup[cf.name]}" />
	</h:column>
</c:forEach>[/XML]
Geht laut dieser Mail auch nicht: Re: Using JSTL in JSF Datatable


----------



## JanHH (24. Dez 2009)

Ist das guter Stil, JSP-Code in JSF-Seiten zu benutzen? Ist ja kreativ, aber hab ich so noch nie gesehen.

Ich würde dafür vermutlich ein eigenes JSF-Tag programmieren, welches das alles macht.


----------

