2009-12-30 6 views
1

Je construis ma propre JSP Tag Library qui ont besoin de soutenir certaines fonctionnalités que les développeurs d'applications peuvent utiliser comme ceci:Comment ajouter VariableResolver personnalisé au contexte JSP dans JSP 2.0 pour prendre en charge spécial EL?

<w:user-label id="usrlb" value="${session.user}"/> 
<w:textbox id="tb" label="User Name" value="${usrlb.value.name}"/> 

qui signifie que je veux que mon EL peut interagir avec ma déclaration de Tag. et aussi j'ai besoin d'ajouter le concept de pile dans cette bibliothèque pour soutenir "l'espace de noms d'identification" ou quelque chose.

Ma recherche actuelle me conduit à envelopper par défaut JspFactory comme ceci:

JspFactory.setDefaultFactory(new JspFactoryImpl(JspFactory.getDefaultFactory())); 

Ce qui pourrait travailler dans tomcat5.5 même si ce n'est pas une bonne idée. Y a-t-il une autre façon plus jolie de faire ça?

Répondre

2

Vous pourriez avoir votre classe d'étiquette <w:user-label /> simplement ajouter une variable à l'une des 'étendues' du contexte (requête, session, ...) pour que les expressions EL puissent la trouver? Si le bean que vous ajoutez à la portée suit les conventions JavaBeans, les propriétés imbriquées doivent être disponibles en utilisant EL.

0

Vous pouvez simplement définir vos attributs de tag avec <rtexprvalue>false</rtexprvalue>, vous recevrez alors des expressions en tant que chaînes que vous pouvez analyser manuellement.

+0

Je pense que c'est une mauvaise idée, sauf si vous êtes convaincu à 100% que le cas d'utilisation n'est pas du tout supporté par l'API existante. – Romain

Questions connexes