2016-06-27 4 views
0

У меня есть 2 портлета, один портлет MVC, а другой - JSF Porlet. Я хочу отправить атрибут из портлета MVC в другой.Liferay set portlet Значение сеанса

в MVC портлета:

 
@Override 
    public void processAction(ActionRequest actionRequest, 
      ActionResponse actionResponse) throws IOException, PortletException { 


     PortletSession portletSession = actionRequest.getPortletSession(); 
     portletSession.setAttribute("example", "SET ATTR PROCESS ACTION", 
       PortletSession.APPLICATION_SCOPE); 
.... 

и в других JSF портлета:

 
FacesContext facesContext = FacesContext.getCurrentInstance(); 
PortletRequest request = (PortletRequest)facesContext.getExternalContext().getRequest(); 
PortletSession session = request.getPortletSession(false); 
String testString = (String) session.getAttribute("example",PortletSession.APPLICATION_SCOPE); 

Но значение СравниваемаяСтрока всегда возвращает нуль.

Оба 2 портлета имеют конфигурации в Liferay-portlet.xml:

<private-session-attributes>false</private-session-attributes> 

Я новичок с Liferay. Спасибо за помощь!

+0

Любой может помочь? –

ответ

0

Попробуйте добавить «LIFERAY_SHARED_» перед именем атрибута, а именно:

portletSession.setAttribute("LIFERAY_SHARED_example", "SET ATTR PROCESS ACTION", PortletSession.APPLICATION_SCOPE); 

А затем прочитать его одним и тем же именем:

String testString = (String) session.getAttribute("LIFERAY_SHARED_example", PortletSession.APPLICATION_SCOPE); 

Кроме того, вы можете изменить этот префикс, указав его в portal-ext.properties:

session.shared.attributes=CUSTOM_PREFIX_ 
+0

Спасибо, но он по-прежнему возвращают нулевое значение –

+0

Когда я распечатать атрибут сеанса в JSF портлета: 'Перечисление еп = session.getAttributeNames();'
'While (en.hasMoreElements()) {' ' System.out.println (en.nextElement()); '' } ' результат: ' javax.portlet.faces.viewIdHistory.view' –

0

Вы должны установить свойство "private-session-attributes" to false in Liferay-portlet.xml файл каждого портлета. Добавьте следующую строку в тег “<portlet>”:

<private-session-attributes>false</private-session-attributes> 
+0

Я поставил его в Liferay-portlet.xml уже. вы можете видеть это выше –

 Смежные вопросы

  • Нет связанных вопросов^_^