2009-12-30 40 views
1

我建立我自己的JSP标签库,其需要支持的一些功能,应用程序开发人员可以使用这样的:如何在Jsp 2.0中将自定义的VariableResolver添加到JSP上下文以支持特殊的EL?

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

这意味着我希望我的EL可以用我的变量声明互动。还需要将堆栈概念添加到此库以支持“id命名空间”或其他内容。

我目前的研究使我包默认JspFactory这样的:

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

哪位能在Tomcat5.5中运行,虽然这不是一个好主意。 有没有其他更漂亮的方法来做到这一点?

回答

2

您可以让您的<w:user-label />标记类简单地将一个变量添加到上下文的范围之一(request,session,...),以便EL表达式可以找到它吗?如果您添加到范围中的bean遵循JavaBeans约定,则应使用EL来提供嵌套属性。

0

您可以使用<rtexprvalue>false</rtexprvalue>定义标签属性,然后您将接收到可以手动解析的字符串表达式。

+0

我认为这是一个坏主意,除非你100%确信现有的API根本不支持用例。 – Romain 2010-01-25 23:16:25

相关问题