JSF应用程序范围的托管bean注入
我正在开发一个web应用程序,使用jsf2、spring和hibernate 我有一个带有JSF util方法的“应用程序范围”托管bean(称为“utilsJSF”),例如:JSF应用程序范围的托管bean注入,jsf,scope,javabeans,managed,Jsf,Scope,Javabeans,Managed,我正在开发一个web应用程序,使用jsf2、spring和hibernate 我有一个带有JSF util方法的“应用程序范围”托管bean(称为“utilsJSF”),例如: 读取属性文件以从其密钥获取消息(使用getBundle) 添加字符串作为稍后在视图上显示的facesmessage 等 我将这个bean注入到我的“基本控制器”(作为“托管属性”)中,以便我的所有控制器扩展这个bean,并可以访问这些实用程序。在这里我没有问题 但是,如何使用其他非“托管bean”类中的这些实用程序呢
- 读取属性文件以从其密钥获取消息(使用getBundle)
- 添加字符串作为稍后在视图上显示的facesmessage
- 等
解决此问题的最佳解决方案是什么?您应该将所有这些实用程序方法(那些是(或可以是)
公共静态的方法)重构为一个真正的实用程序类,而不是将其保留在应用程序范围的bean中
public final class Faces {
private Faces() {
// Prevent construction.
}
public static void addGlobalInfoMessage(String summary) {
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_INFO, summary, null));
}
// ...
}
这样你可以在任何地方使用它。创建一个类似的用于获取捆绑邮件的邮件。非常感谢您,巴卢斯克。使用静态方法是我的第一个解决方案,它是有效的。我只是想知道是否还有别的办法。事实上,我试着将utils方法放在应用程序范围的bean中,只是因为我在网站上读到了它。但我认为应用程序范围的bean用于存储应用程序数据(常量、静态列表等),而不是保存实用程序方法,您不这么认为吗?谢谢你,我非常感谢你和阅读你的网站。(很抱歉,如果我的英语不是很好,但我来自西班牙)。如果这个班没有州,那么就没有必要让它成为一个有州的班。然而,应用程序范围的bean对于将应用程序范围的数据公开到视图(如静态下拉列表)中非常有用。