- Я определяю меню в файле navigation.vm, который работает хорошо в проекте liferay.
- Но я хочу получить доступ к этому меню из своего портлета.
- Есть ли способ получить доступ к меню из точки входа портлета или view.jsp ????
4
A
ответ
0
В этом link описывается способ получения пунктов меню непосредственно в jsp.
Код ниже воспроизводится непосредственно из приведенной выше ссылке с некоторым улучшением форматирования:
<%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.liferay.portal.model.Layout"%>
<%@ page import="com.liferay.portal.kernel.util.WebKeys"%>
<%@ page import="com.liferay.portal.theme.NavItem" %>
<%@ page import="com.liferay.portal.theme.RequestVars" %>
<%@ page import="com.liferay.portal.theme.ThemeDisplay"%>
<portlet:defineObjects />
<liferay-theme:defineObjects />
<div style="width:100%">
<%
//ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
String title = themeDisplay.getLayout().getName(themeDisplay.getLocale());
List<NavItem> navItems = new ArrayList<NavItem>();
if (layout != null) {
RequestVars requestVars = new RequestVars(request, themeDisplay, layout.getAncestorPlid(), layout.getAncestorLayoutId());
navItems = NavItem.fromLayouts(requestVars, layouts);
}
for (NavItem navItem : navItems) {
if (navItem.getName().equalsIgnoreCase(title)) {
if (navItem.hasChildren()) {
for(NavItem navChild : navItem.getChildren()) {
%>
<div style="float:left;" class="newsMenuPortlet">
<a href="<%= navChild.getURL() %>" <%=navChild.getTarget() %>>
<%= navChild.getName() %>
</a>
</div>
<%
} // inner for-loop ends here
}
}
}// outer for-loop ends here
%>
</div>
1
импорт liferay-ui
TagLib:
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
, то вы можете использовать
<liferay-ui:navigation displayStyle="from-level-0" >
</liferay-ui:navigation>
Примечание: установка displayStyle="from-level-0"
, чтобы дать вам нормальное поведение, как на navigation.vm
, вы можете играть с атрибутами по-другому, чтобы получить другое поведение.
Смежные вопросы
- 1. Доступ к пользователю из портлета liferay?
- 2. Как получить доступ к странице портлета вручную?
- 3. Доступ к веб-содержимому Liferay изнутри портлета?
- 4. Как получить контекст портлета в config (Liferay)?
- 5. Получить контекст приложения портлета из другого портлета (Liferay + Spring)
- 6. Liferay theme получить настройки портлета
- 7. Как получить доступ к журналуArticlePermission из пользовательского портлета
- 8. Запуск выхода из портлета liferay
- 9. Как получить идентификатор портлета, используя имя портлета в Liferay?
- 10. Liferay портлета Выпуск
- 11. Liferay: Можно ли установить WebKeys.VM_VARIABLES из портлета и получить к нему доступ из темы?
- 12. Как читать файл Excel из портлета liferay?
- 13. Liferay: Как добавить печенье из портлета
- 14. liferay login без портлета
- 15. Настройки настроек портлета Liferay
- 16. liferay проверяет пароль из пользовательского портлета
- 17. Liferay: пользовательские параметры портлета
- 18. Liferay - переименование заголовка портлета
- 19. Локализация пользовательского портлета Liferay
- 20. Развертывание портлета в Liferay
- 21. развитие Liferay портлета Ivy
- 22. Liferay: портлеты внутри портлета
- 23. Liferay - Struts2 Образец портлета
- 24. Вызов конфигурации портлета из другого портлета (Liferay 6.1)
- 25. Как получить идентификатор портлета из портлета конфигурации?
- 26. Как получить доступ к атрибутам сеанса сервлета в компоненте JSF внутри запроса портлета Liferay?
- 27. Показать портлет Liferay внутри другого портлета liferay
- 28. Загрузка изображений в тему liferay из портлета
- 29. Отправить метод POST из портлета liferay
- 30. Возможно ли получить доступ к ServletContext из кода портлета?
благодарит также работает –
я получил все меню и подменю, но, как я получить значок. Например: navClind.icon(); –