Создание портлета Liferay в режиме редактирования - PullRequest
2 голосов
/ 15 апреля 2011

Я пытаюсь создать портлет liferay, который поддерживает редактирование и режим просмотра. Я использую MVCPortlet по умолчанию, предоставленный источником liferay.

Я настроил файл portlet.xml следующим образом

<portlet>
    <portlet-name>inline-portlet</portlet-name>
    <display-name>inline</display-name>
    <portlet-class>com.liferay.util.bridges.mvc.MVCPortlet</portlet-class>
    <init-param>
        <name>edit-jsp</name>
        <value>/edit.jsp</value>
    </init-param>
    <init-param>
        <name>view-jsp</name>
        <value>/view.jsp</value>
    </init-param>
    <expiration-cache>0</expiration-cache>
    <supports>
        <mime-type>text/html</mime-type>
        <portlet-mode>view</portlet-mode>
        <portlet-mode>edit</portlet-mode>
    </supports>
    <portlet-info>
        <title>inline</title>
        <short-title>inline</short-title>
        <keywords>inline</keywords>
    </portlet-info>
    <security-role-ref>
        <role-name>administrator</role-name>
    </security-role-ref>
    <security-role-ref>
        <role-name>guest</role-name>
    </security-role-ref>
    <security-role-ref>
        <role-name>power-user</role-name>
    </security-role-ref>
    <security-role-ref>
        <role-name>user</role-name>
    </security-role-ref>
</portlet>

При развертывании я не вижу никакой новой вкладки, созданной в режиме редактирования, когда мы нажимаем на значок гаечного ключа, как.

Есть ли какая-либо конфигурация, которую я пропускаю. У меня уже есть edit.jsp и view.jsp в корневом каталоге. Представление является согласованным, но не может найти файл edit.jsp, другими словами, он не вызывается.

Есть идеи по этому поводу?

Ответы [ 5 ]

2 голосов
/ 02 сентября 2011

Вы добавили режим редактирования в portlet.xml? как это?

<supports>
    <mime-type>text/html</mime-type>
    <portlet-mode>view</portlet-mode>
    <portlet-mode>edit</portlet-mode>
    <portlet-mode>help</portlet-mode>
</supports>

Все режимы, используемые портлетом, должны быть явно установлены в этой части конфигурации portlet.xml, и вы должны сделать это для всех портлетов, которые вы хотите больше, чем режим просмотра.

Также вы можете написать обработчик режима, подобный этому, в вашем классе, просто реализуйте PortletListener

это может быть полезно как минимум для отладки.

public void handleResourceRequest(ResourceRequest request,
            ResourceResponse response,
            Window window) {
// Switch the view according to the portlet mode
if (request.getPortletMode() == PortletMode.EDIT){
    this.addWindow(editWindow);
}else if (request.getPortletMode() == PortletMode.VIEW){
    window.setContent(viewContent);
}else if (request.getPortletMode() == PortletMode.HELP)
    window.setContent(helpContent);
}

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

Приветствия

2 голосов
/ 06 декабря 2011

Если вы создаете пользовательские портлеты в режиме редактирования, этот режим не будет отображаться на вкладке под значком конфигурации, как портлеты Liferay по умолчанию.Вместо этого JSP вашего режима редактирования будет доступен через новый значок, который называется Preferences.

Спецификация портлета определяет только режимы VIEW, EDIT и HELP, но позволяет добавлять пользовательские режимы портлета в список.Именно это и сделал Liferay для своих портлетов по умолчанию.Они используют режим пользовательских портлетов CONFIG.Для примера того, как реализовать это, проверьте последнее сообщение этой темы .

2 голосов
/ 25 мая 2011

Я думаю, что режим редактирования портлета в Liferay называется "Предпочтение"

1 голос
/ 07 декабря 2011

Вы должны создать класс, который реализует

com.liferay.portal.kernel.portlet.ConfigurationAction

, и вы должны зарегистрировать его в liferay-portlet.xml в узле портлета.

<portlet>
    <portlet-name>MyPortlet</portlet-name>
    <configuration-action-class>com.mydomain.MyConfigurationAction</configuration-action-class>
</portlet>
0 голосов
/ 15 апреля 2015

В зависимости от вашего случая, кроме конфигурации portlet.xml, вам необходимо реализовать в вашем классе методы doView, doEdit и processAction, которые могут расширять MVCPortlet. В книге «Liferay in Action» есть хороший пример.

Или вы можете выполнять всю логику в файлах jsp и метках библиотеки Liferay. Режим редактирования доступен в разделе «Настройки».

...