2010-03-30 9 views
2

J'ai une application Web JSF. J'utilise les haricots comme haricots de printemps (pas les haricots gérés par JSF). Maintenant, j'ai une URL à l'application www.example.com?parameter=2Propriété JSF Spring Bean

Je voudrais définir ce paramètre en bean sur le chargement de la page. Je maintenant comment faire ceci avec le flux de Web de ressort mais avec la navigation de JSF je ne peux pas faire ceci. Que pensez-vous d'utiliser JSTL c:set ou jsp:setProperty?

Merci pour votre aide.

Amitiés Sebastian

Répondre

1

De here:

On pourrait étendre un Ressorts org.springframework.beans.factory.config.PropertyPlaceholderConfigurer qui accède au RequestContext (org.springframework.web.context. request.RequestContextHolder # getRequestAttributes()) pour résoudre les propriétés similaires à $ {xyz} dans le bean. Bien sûr, cela ne fonctionnerait que pour les haricots de printemps avec "request" -scope.

Si la fève est en session portée que vous pouvez simplement utiliser les éléments suivants dans une méthode de phase Listener:

property = FacesContezt.getCurrentInstance().getExternalContext 
     .getRequestMap().get("paramName"); 

l'auditeur de phase est définie par

<f:view beforePhase="#{bean.method}"> 

si vous utilisez facelets, beforePhaseListener

Si vous utilisiez faces-context.xml, vous auriez pu utiliser le <managed-property>.

+0

Le Bean est dans le domaine de la session :( Thanky vous pour votre réponse. – Sebastian

+0

Quelle méthode d'action? Je n'ai pas une méthode d'action. La page est chargée par adresse URL avec le paramètre. Le doesnt utilisateur ne toute action. La page devrait afficher des données sur la base du paramètre de demande Je n'utilise pas faces-config.xml pour définir les beans gérés Tous les beans sont des haricots printaniers définden dans les fichiers de contexte d'application – Sebastian

+0

@Sebastian, désolé, j'ai ajouté une mise à jour – Bozho