2009-12-30 38 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

相關問題