J'essaie d'écrire une balise JSPX personnalisée qui lit la valeur d'une propriété bean donnée de chaque objet dans une liste donnée, avec le nom de cette balise propriété transmise à la balise en tant qu'attribut JSP. La balise ressemblerait à quelque chose comme ceci:Comment obtenir la valeur de la propriété bean lorsque le nom de la propriété elle-même est une variable dynamique
<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:jsp="http://java.sun.com/JSP/Page"
version="2.0">
<jsp:output omit-xml-declaration="yes"/>
<jsp:directive.attribute name="items" type="java.lang.Iterable"
required="true" description="The items whose properties are to be read"
rtexprvalue="true"/>
<jsp:directive.attribute name="propertyName" type="java.lang.String"
required="true" description="The name of the bean property to read"
rtexprvalue="true"/>
<c:forEach items="${items}" var="item">
<!-- This is the bit that doesn't work -->
<jsp:getProperty name="item" property="${propertyName}" />
</c:forEach>
</jsp:root>
Le problème est que l'attribut property
de la balise jsp:getProperty
ne semble pas accepter une expression, seule une valeur littérale. Donc, cela fonctionne, mais ne sert à rien pour moi (que je ne connais pas le nom de la propriété jusqu'à l'exécution):
<jsp:getProperty name="item" property="firstName" />
L'erreur que je reçois est:
org.apache.jasper.JasperException: org.apache.jasper.JasperException:
PWC6054: Cannot find any information on property '${propertyName}' in
a bean of type 'com.example.FooBar'
Merci pour toute aide.
Légende! Merci un million. –
Existe-t-il un guide de référence pour toutes ces notations? –
De rien. Oui, consultez le chapitre Unified EL dans le didacticiel Java EE. Plus précisément, cette partie est décrite au chapitre [Référence aux propriétés d'objet en utilisant des expressions de valeur] (http://download.oracle.com/javaee/5/tutorial/doc/bnahq.html#bnahx). – BalusC