Если портлет - это веб-приложение, то почему настройки портлета берутся из ServletRequest (в области запроса)?Как правильно выбрать портлеты в Liferay?
Как можно принять объект предпочтения в области приложения?
UPDATE 1
Я получение портлета следующим образом. Правильно ли это? член prefs ниже находится в области приложения.
private synchronized void setupPreferences(HttpServletRequest request) {
// creating preferences
if(prefs == null) {
prefs = PortalUtil.getPreferences(request);
if(prefs != null) {
System.out.println("Preferences were taken from request");
}
String portletResource = ParamUtil.getString(request, "portletResource");
if (Validator.isNotNull(portletResource)) {
try {
System.out.println("Replacing preferences from 'portletRecource' parameter");
prefs = PortletPreferencesFactoryUtil.getPortletSetup(request, portletResource);
} catch (SystemException e) {
e.printStackTrace();
} catch (PortalException e) {
e.printStackTrace();
}
}
if(prefs == null) {
System.out.println("Preferences were NOT obtained yet");
}
else {
System.out.println("Preferences are OK");
}
}
}
UPDATE 2
Я использую также сервлеты и статические объекты в моем приложении. Статические объекты находятся в области приложения, как можно узнать. Интересно, могу ли я сохранить объект предпочтений портлетов в каком-то статическом объекте, или мне нужно каждый раз получать его от запроса?
Фактически я уже предполагал это, и он работает, но я хочу знать, это правильно?
Объект 'request' может быть как' PortletRequest', так и обычным 'HttpServletRequest', переходящим в обычный сервлет. – Dims