2010-09-20 56 views
1

我們最近在一個項目上切換到Servlet 2.4和JSP 2,我們的自定義標籤不再有效。 我們有標籤,如:JSP 2和Servlet 2.4破壞了我的自定義標籤

<myTags:someTag value="${x}" /> 

,並在標籤一旦我們評估X豆,並從那裏去了。現在評估直接在JSP中進行,我們爲value屬性設置了一個String(顯然是x.toString())。

有沒有很多標籤,我可以在幾天內適應它們,但我怎麼能做到這一點?我在網上找不到任何東西(或者我沒有看到我應該在哪裏)。

如何將x bean傳遞給我的標記並在那裏評估它,並且不允許它在JSP中進行評估?

P.S.我不想停用EL引擎

謝謝!

回答

2

如果你重新聲明web.xml如Servlet 2.4的如下

<web-app 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
    version="2.4"> 

tld文件作爲JSP 2.0的taglib如下:

<taglib 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" 
    version="2.0"> 

那麼你可以添加<rtexprvalue>true</rtexprvalue>條目要標記TLD屬性期待EL值的文件。例如。

<attribute> 
    <name>value</name> 
    <rtexprvalue>true</rtexprvalue> 
</attribute> 

它默認爲false

+0

感謝您的回覆。我已經有了像你說的那樣設置好的東西,並且在達到我的標籤之前,它會評估爲字符串。 – user0912 2010-09-20 19:02:29

+0

你還更新了'tld'文件嗎?我更新了我的答案。 – BalusC 2010-09-20 19:43:40

+0

是的。我在web.xml中使用Servlet 2.4,爲TLD文件使用web-jsptaglibrary_2_0.xsd。即使x bean是別的東西,我也會在值中得到一個字符串。這可能是什麼?正如你可能從我的另一個問題中猜到的,我並不擅長這一點,但基本上它應該起作用。我還能做什麼錯? – user0912 2010-09-20 20:04:18