4 votes

utilisation de l'expression EL de JSF dans le fichier web.xml

Puis-je utiliser une expression EL dans le fichier web.xml ? Par exemple

Web.xml

<context-param>
        <param-name>primefaces.DIR</param-name>
        <param-value>#{userUtilityBacking.direction}</param-value>
</context-param>

et mon bean JSF comme ceci

Haricot JSF

@ManagedBean(name="userUtilityBacking")
@SessionScoped
public class UserUtilityBacking  implements Serializable {

     private static final long serialVersionUID = 1L;
    private String direction  ;   
// and public setters and getter 

Cela fonctionnera-t-il ?

5voto

BalusC Points 498232

Puis-je utiliser une expression EL dans le fichier web.xml ?

Pas exactement ça. Par défaut, le servletcontainer ne procède pas à l'évaluation EL des paramètres du contexte lorsque la fonction web.xml a été analysé au cours du démarrage de l'application. Cependant, les outils de construction comme Ant et Maven et certains servletcontainers comme JBoss (après avoir défini une configuration spécifique) supportent l'utilisation de ${...} une syntaxe similaire à EL pour intégrer des variables d'environnement et/ou des arguments VM par leur nom dans plusieurs fichiers XML de descripteurs de déploiement tels que web.xml , ejb-jar.xml et persistence.xml . Note : qui sont donc pas les variables que vous avez déclarées dans la portée de l'EL JSF, comme le bean géré.


Cela fonctionnera-t-il ?

Cela ne fonctionnera que si PrimeFaces obtient la valeur statique "#{userUtilityBacking.direction}" comme String et l'évalue ensuite de manière programmatique dans le contexte EL actuel en utilisant par exemple Application#evaluateExpressionGet() . Mais, d'après le Code source de PrimeFaces 3.5 il ne le fait nulle part. Il semble qu'ils l'aient implémenté pour la version 4.x seulement.

Dans votre cas particulier, il est préférable de spécifier la direction directement dans le champ <html> pour l'appliquer à l'ensemble du document et/ou dans dir d'un composant HTML ou JSF arbitraire.

<html dir="#{userUtilityBacking.direction}">

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X