Как увидеть страницу конфигурации портлета в Liferay?

При создании портлета в Liferay IDE я настроил его на режим конфигурации Liferay. В ответ мастер создал JSP-файл со следующим текстом:

<%@ taglib uri="http://java.sun.com/portletConfiguration0" prefix="portlet" %>

<portlet:defineObjects />

This is the <b>MyPortlet</b> portlet in Config mode.

Как позвонить на эту страницу из Liferay, чтобы увидеть этот текст? При нажатии на значок гаечного ключа и выборе Configuration я не вижу ничего похожего.

ОБНОВЛЕНИЕ

Путь указан правильно, потому что он был установлен мастером.

Вопрос в том, как вызвать этот JSP из веб-интерфейса с помощью мыши?


person Dims    schedule 19.04.2013    source источник


Ответы (2)


Обычно проблема в том, что неправильно указан путь к jsp конфигурации.

In portlet.xml

Добавьте следующее:

<init-param>
    <name>config-template</name>
    <value>/path/to/configuration.jsp</value>
</init-param>

как дочерний элемент <portlet>, соответствующий портлету, который вы пытаетесь изменить.

Ваш окончательный portlet.xml должен выглядеть примерно так:

<portlet-app>
    <portlet>
        <portlet-name>my-portlet</portlet-name>
        <display-name>My Portlet</display-name>
        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>
        <init-param>
            <name>config-template</name>
            <value>/path/to/configuration.jsp</value>
        </init-param>
        <init-param>
            <name>view-action</name>
            <value>/my_portlet/view</value>
        </init-param>
        <expiration-cache>0</expiration-cache>
        <supports>
            <mime-type>text/html</mime-type>
        </supports>
    </portlet>
</portlet-app>
person rp.    schedule 19.04.2013

Из вики (хотя здесь нет ничего постыдного, мне понадобилось очень много времени, чтобы найти это):

Добавить страницу конфигурации в портлет плагина ‹- подробнее здесь

liferay-portlet.xml->

    <portlet>
      <portlet-name>configuration-example</portlet-name>
      <icon>/icon.png</icon> 
      <configuration-action-class>com.sample.jsp.action.ConfigurationActionImpl</configuration-action-class> 
      <instanceable>true</instanceable> 
      <header-portlet-css>/css/test.css</header-portlet-css> 
      <footer-portlet-javascript>/js/test.js</footer-portlet-javascript> 
    </portlet>

ConfigurationActionImpl.java (или ваш класс) ->

    public class ConfigurationActionImpl implements ConfigurationAction {
        public void processAction(PortletConfig config, ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { 

          String portletResource = ParamUtil.getString(actionRequest, "portletResource"); 

          PortletPreferences prefs = PortletPreferencesFactoryUtil.getPortletSetup(actionRequest, portletResource); 

          //Read, validate, and then set form parameters as portlet preferences

          prefs.store();

          SessionMessages.add(actionRequest, portletConfig.getPortletName() + ".doConfigure");
        }
        public String render(PortletConfig config, RenderRequest renderRequest, RenderResponse renderResponse) throws Exception { 

        return "/configuration.jsp";
        }
    }

Конфигурация.jsp

    <%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
    <%@ taglib uri="http://liferay.com/tld/portlet" prefix="liferay-portlet" %>

    <portlet:defineObjects />

    <form action="<liferay-portlet:actionURL portletConfiguration="true" />" method="post" name="<portlet:namespace />fm"> <input name="<portlet:namespace /><%=Constants.CMD%>" type="hidden" value="<%=Constants.UPDATE%>" /> 

    Type: <select name="<portlet:namespace />type"> <option value="casual">Casual</option> <option value="formal">Formal</option> </select> <br/>

    <input type="button" value="Save" onClick="submitForm(document.<portlet:namespace />fm);" /> </form>

«Обратите внимание на атрибут portletConfiguration в теге liferay-portlet:actionURL».

person Graham P Heath    schedule 15.01.2014