Как установить глобальные переменные портала в LifeRay? - PullRequest
4 голосов
/ 22 декабря 2011

В настоящее время я работаю над порталом, и мне нужно использовать Liferay в качестве сервера портала.

У моего приложения будут глобальные настройки, к которым мне нужно получить доступ во всех портлетах моего портала.

Каков наилучший способ загрузки таких параметров конфигурации? Я хочу, чтобы эти параметры конфигурации были прочитаны из файла / базы данных конфигурации. но это должно быть прочитано только один раз при запуске приложения. Я не хочу, чтобы настройки считывались из базы данных / файла для каждого запроса.

Кроме того, я бы использовал скоростной каркас для шаблонов. Могу ли я прочитать те же глобальные переменные в моих шаблонах скорости?

Могу ли я поместить эти глобальные переменные в мой файл portal-ext.properties и, если да, как я могу загрузить в него значения по умолчанию?

Любые другие подходы также помогут,

Заранее спасибо

Ответы [ 2 ]

5 голосов
/ 03 февраля 2012

Добавьте следующее к 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);

привет

0 голосов
/ 31 октября 2013

Один из подходов состоит в том, чтобы использовать хук после входа в систему.

Определите ваш класс в файле portal-ext.properties

login.events.post = com.xxx.PostLoginAction

В классе вы можете прочитать конфигурацию или свойства из файла / базы данных. Вы можете установить их как некоторые глобальные значения сеанса, которые могут использоваться всеми портлетами.

Дополнительную информацию о действиях после входа в систему и об обмене сеансами можно получить по ссылкам ниже

http://www.liferay.com/community/wiki/-/wiki/Main/Custom+Post-login+Redirect

http://www.liferay.com/community/wiki/-/wiki/Main/Session+Sharing

...