[英]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.