gpt4 book ai didi

java - 如何从 JSP 自定义标记中读取上下文中的包?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:35:30 24 4
gpt4 key购买 nike

我有一个 JSP 2.0 文件,其中包含对自定义标记的调用,该标记需要知道页面上当前使用的是什么包,以便它可以查找一些资源。自定义标记是用 Java 编写的。 bundle 可以根据自定义标签在哪个页面上使用而改变,但资源 key 将始终相同,所以我想使用现有的 fmt:bundle标签来指定这一点,例如:

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

我一直假设 fmt:bundle标签可以从内部标签读取(或以其他方式提供其环境),自定义标签在上面的示例中(与它与 fmt:message 标签交互的方式相同),但我一直无法弄清楚如何访问 LocalizationContextfmt:bundle应该是从定义自定义标记的 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 的类它实现了包查找,并且可以被需要生成本地化消息的任何标记处理程序实现使用。

关于java - 如何从 JSP 自定义标记中读取上下文中的包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8403701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com