tags:

views:

160

answers:

2

I'm building my own JSP Tag Library which need to support some features that Application developers can use like this:

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

which means I want my EL can interact with my Tag declaration. and also I need to add stack concept into this library to support "id namespace" or something.

My current research leads me to wrap default JspFactory like this:

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

Which could work in Tomcat5.5 although it's not a good idea. Is there any other more pretty way to do that?

+2  A: 

You could have your <w:user-label /> tag class simply add a variable to one of the context' scopes (request, session, ...) so EL expressions can find it? If the bean you add to the scope follows JavaBeans conventions, nested properties should be available using EL.

Romain
A: 

You can just define your tag attributes with <rtexprvalue>false</rtexprvalue>, then you will receive expressions as Strings which you can parse manually.

axtavt
I think it's a bad idea unless you're 100% convinced the use case is not supported at all by the existing API.
Romain