en utilisant les getter du bakcing bean pour faire la recherche base de donnée et en utilisant les managed property, il y a moyen d'y arriver. Exemple
<a href="document.jsf?documentId=12345">....
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public class DocumentBean{
private String id;
private Document document;
public void setId(String id){
this.id=id;
}
public String getId(){return id;}
public Document getDocument(){
if (document==null){
// charger le document depuis la db + id
}
return document;
}
} |
Page jsf (example)
<h:outputText value="#{requestDocument.document.name}"/>
faces-config.xml
1 2 3 4 5 6 7 8 9 10
| <managed-bean>
<managed-bean-name>requestDocument</managed-bean-name>
<managed-bean-class>my.package.DocumentBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>id</property-name>
<property-class>java.lang.String</property-class>
<value>#{params.documentId}</value>
</managed-property>
</managed-bean> |
Ainsi, lors de l'utilisation de "requestDocument", le champ id sera toujours initialisé avec la valeur retournée par #{params.documentId} qui, si ma mémoire est bonne, est correcte
Partager