我正在构建自己的JSP标记库,该库需要支持应用程序开发人员可以使用的某些功能,如下所示:

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


这意味着我希望我的EL可以与我的Tag声明进行交互。并且我还需要在该库中添加堆栈概念以支持“ id名称空间”之类的东西。

我目前的研究使我将默认的JspFactory封装如下:

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


尽管这不是一个好主意,但它可以在Tomcat5.5中工作。
还有其他更漂亮的方法吗?

最佳答案

您可以让您的<w:user-label />标记类仅将变量添加到上下文的范围之一(请求,会话等)中,以便EL表达式可以找到它?如果添加到范围中的bean遵循JavaBeans约定,则嵌套属性应使用EL可用。

10-05 21:21