2013-12-18 2 views
1

Я просмотрел документацию Liferay и многие другие уроки. Но я все еще поражен выполнением моего требования.Настроить существующий портфолио Liferay

Это то, что мне нужно достичь: 1.) Создать новую кнопку или ссылку (HREF) в Wiki (встроенный) портлетов (где-нибудь в портлет) 2.) При нажатии этой кнопки , Я хочу открыть новую страницу jsp только в этом портлете.

Это то, что я сделал: Я создал проект Liferay-крючок и выбранный /wiki/view.jsp для настройки. Добавлена ​​кнопка по:

<liferay-ui:icon image="history" label="<%= true %>" message="Notify Users" method="get" url=<%="/c/portal/sample"%>" />

Это мой Liferay hook.xml:

<?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE hook PUBLIC "-//Liferay//DTD Hook 6.1.0//EN" "http://www.liferay.com/dtd/liferay-hook_6_1_0.dtd"><hook><custom-jsp-dir>/META-INF/custom_jsps</custom-jsp-dir> 
<struts-action> 
    <struts-action-path>/wiki/testing</struts-action-path> 
    <struts-action-impl> 
     com.liferay.sample.hook.action.WikiEmailHandlerAction 
    </struts-action-impl> 
</struts-action> <struts-action><struts-action-path>/portal/sample</struts-action-path><struts-action-impl> 
    com.liferay.sample.hook.action.WikiEmailHandlerAction 
</struts-action-impl> 

Где, WikiEmailHandlerAction мой Java класс, который расширяет BaseStrutsPortletAction. При нажатии на кнопку «Notify Users», он открывает новую страницу JSP (но не внутри портлета, но в качестве новой страницы. LifeRay Эксперты, пожалуйста, дайте мне знать, как выполнить это требование.

ответ

1

Ваш JSP открывает в целую страницу из-за/с/портала/образец URL.

Вы должны создать renderURL с некоторым набором параметров. и в визуализации метод проверки Переопределенный StrutsAction класса для этого параметра и сделать свой собственный JSP.

Аналогичным образом перейдите к методу действий, установите некоторый параметр в actionURL и проверьте этот параметр в processAction класса Overridden StrutsAction.

1

Прежде всего, ваш liferay-hook.xml выглядит неправильно. Он также должен иметь элемент, который должен указывать на папку внутри вашего крючка, где вы помещаете настроенный view.jsp из портлета Wiki.

В этой папке также должен содержаться другой JSP-файл, который вы хотите открыть, нажав кнопку.

ПРИМЕЧАНИЕ. В среде портлета вы не можете открыть jsp, просто гиперсвязывая его путь. Он будет служить автономным jsp вашим веб-контейнером. Таким образом, вам нужно будет создать портлетURL и ваш запрос на отправку портлета/StrutsAction в соответствующий JSP.

Таким образом, в вашем View.jsp, вам нужно создать PortletURL с помощью < портлет: renderURL > или < портлет: actionURL > тег (как упоминалось выше Панкай) согласно вашему требованию.

Или другое упрощенное решение (или взломать) - использовать JQuery.ajax и загрузить содержимое JSP с помощью Ajax.

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