簡體   English   中英

如何從JSP自定義標記中讀取上下文中的包?

[英]How do I read the bundle in context from within a JSP custom tag?

我有一個JSP 2.0文件,其中包含對自定義標記的調用,該標記需要知道頁面上當前正在使用的包,因此它可以查找一些資源。 自定義標記是用Java編寫的。 捆綁包可以根據自定義標記使用的頁面而改變,但資源鍵將始終相同,因此我想使用現有的fmt:bundle標記來指定它,例如:

<fmt:bundle basename="myBundle">
    <custom:tag title="text.title"/>
</fmt:bundle>

我一直在假設fmt:bundle標簽可以從內部標簽中讀取(或以其他方式提供其環境),其中自定義標簽在上面的示例中(與它與fmt:message標簽交互的方式相同) ),但我無法弄清楚如何訪問fmt:bundle所定義的LocalizationContext ,它定義在定義自定義標記的Java中。

我試過了

LocalizationContext lc = (LocalizationContext)Config.get(
        pageContext.getRequest(),Config.FMT_LOCALIZATION_CONTEXT);
ResourceBundle rb = lc.getResourceBundle();
String s =rb.getKey(title);

但我得到了

java.util.MissingResourceException: Can't find resource for bundle
    java.util.PropertyResourceBundle, key text.title

這似乎表明這不是正確的地方(我猜這已經落到了默認的捆綁?)。

一種解決方法可能是將包名稱傳遞給自定義標記,但我確定我想要實現的應該是可能的,如果只有我糟糕的JSP知識不讓我失望,那么我希望有人可以幫助我得到更好的理解!

我該怎么辦?

根據JSTL規范,有一個名為LocaleSupport的類,它實現了bundle查找,並且可以被需要生成本地化消息的任何標記處理程序實現使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM