我目前正在开发门户网站,我需要使用Liferay作为Portal服务器。
我的应用程序将有一些全局设置,我需要访问门户网站中的所有portlet。
加载此类配置settigs的最佳实践是什么?我希望从配置文件/数据库中读取这些配置设置。但它应该只在应用程序启动时读取一次。我不想为每个请求从数据库/文件中读取设置。
另外,我将使用模板的速度框架,我可以在速度模板中读取相同的全局变量吗?
我可以将这些全局变量放在我的portal-ext.properties文件中吗?如果是,我该如何在其中加载默认值?
任何其他方法也会有所帮助,
提前致谢
答案 0 :(得分:5)
将以下内容添加到 portal-ext.properties :
my.key=myValue
您可以为密钥实现PropsKeys:
public class ExtPortalKeys implements PropsKeys {
public static final String MY_KEY = "my.key";
}
然后致电:
PrefsPropsUtil.getString(companyId, ExtPortalKeys.MY_KEY);
问候
答案 1 :(得分:0)
一种方法是使用登录后动作挂钩。
将您的类定义到portal-ext.properties文件
login.events.post = com.xxx.PostLoginAction
在类中,您可以从文件/数据库中读取配置或属性。您可以将它们设置为可由所有portlet共享的某些全局会话值。
有关登录后操作和会话共享的更多信息,请参阅以下链接
http://www.liferay.com/community/wiki/-/wiki/Main/Custom+Post-login+Redirect
http://www.liferay.com/community/wiki/-/wiki/Main/Session+Sharing