如何在liferay中设置门户网络范围的全局变量?

时间:2011-12-22 07:52:30

标签: java liferay portlet portal

我目前正在开发门户网站,我需要使用Liferay作为Portal服务器。

我的应用程序将有一些全局设置,我需要访问门户网站中的所有portlet。

加载此类配置settigs的最佳实践是什么?我希望从配置文件/数据库中读取这些配置设置。但它应该只在应用程序启动时读取一次。我不想为每个请求从数据库/文件中读取设置。

另外,我将使用模板的速度框架,我可以在速度模板中读取相同的全局变量吗?

我可以将这些全局变量放在我的portal-ext.properties文件中吗?如果是,我该如何在其中加载默认值?

任何其他方法也会有所帮助,

提前致谢

2 个答案:

答案 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