Liferay динамически меняет заголовок страницы

Я пытаюсь изменить заголовок страницы, но метод PortalUtil.setPageTitle("title", request); не работает из jsp. Я также пробовал в методе doView.

Моя вторая попытка была через servletrequest:

В doView я написал

HttpServletRequest httpRequest = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(renderRequest));
httpRequest.setAttribute("hola", "hola");

И на обычном портале я пробовал:

#set ($holas =$request.get('attributes').get('hola'))
#set ($holas2 = $request.getSession().getAttribute("hola"))

$holas    
$holas2

но Velocity показывает только $holas $holas2.


person Antonio mc    schedule 08.07.2013    source источник


Ответы (3)


Похоже, я ошибся в своей первой попытке, поэтому я заменил предыдущий ответ на этот: Добавить этот код в JSP или doView:

<% 
com.liferay.portal.util.PortalUtil.setPageTitle("Honk", request); 
%>
person Olaf Kock    schedule 09.07.2013
comment
Javascript не вариант, потому что Google не читает js. Не могли бы вы объяснить по-другому? возможно ли это в doView внутри XXXportlet.java? - person Antonio mc; 09.07.2013

В вашем jsp вы должны попробовать

<%
layout.setTitle("title");
%>

layout — это объект Layout, сгенерированный jsp.

person Babesh Florin    schedule 30.07.2013

Используйте приведенный ниже код,

String title = (String)renderRequest.getAttribute("title");
HtmlPageTitleUtil.setHtmlTitle(title, request, true);

Передайте атрибут заголовка из контроллера, или вы также можете использовать статический текст. Импортируйте указанный выше служебный класс, а также

<portlet:defineObjects />
<theme:defineObjects />

это для jsp и все готово.

person Abhishek Suthar    schedule 01.10.2015