gpt4 book ai didi

java - FacesContext.getCurrentInstance().getApplication().getMessageBundle() 返回哪个 messageBundle?

转载 作者:太空宇宙 更新时间:2023-11-04 06:46:35 28 4
gpt4 key购买 nike

当 faces-config.xml 中有 3 个消息包时,会返回哪一个?我可以控制应该返回哪一个吗?当我打印出 FacesContext.getCurrentInstance().getApplication().getMessageBundle() 的值时,它返回 3 个之一,但我可以确保始终返回相同的包吗?

(我问这个问题是因为根据缺少的关键属性,我在其他地方有一些奇怪的行为,但我现在不想更深入,因为它超出了这个问题的范围)

最佳答案

当你在 bean 中时,你总是可以使用facecontext:

FacesContext facesContext = FacesContext.getCurrentInstance();
String messageBundleName = facesContext.getApplication().getMessageBundle();

然后您可以指定 bundle 名称:

Locale locale = facesContext.getViewRoot().getLocale();
ResourceBundle bundle = ResourceBundle.getBundle(messageBundleName, locale);

在 faces-config.xml 中:

<managed-bean>
<managed-bean-name>myBean</managed-bean-name>
<managed-bean-class>de.laliluna.tutorial.messageresource.bean.MyBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>

该 bundle 由 <managed-bean-name> 返回区域设置来自您的位置。

也在jsp上:

<f:loadBundle basename="path to bundle" var="msg"/>

关于java - FacesContext.getCurrentInstance().getApplication().getMessageBundle() 返回哪个 messageBundle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23891230/

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