Frage

Ich habe ein ziemlich grundlegendes Portlet mit der Struts -Portlet -Brücke geschrieben und es für Liferay bereitgestellt. Die Navigation in meinem Portlet scheint in Ordnung zu sein. Wenn ich jedoch auf einen Link auf einem anderen Portlet im Portal klicke, kehrt mein Portlet zum Ansichtsaktions -Setup in meinem Portlet zurück. XML, anstatt den bestehenden Staat erneut zu rendern. Was mache ich falsch?

Mein portlet.xml ist:

<?xml version="1.0"?>

<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" version="2.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">
  <portlet>
    <portlet-name>test</portlet-name>
    <display-name>Test</display-name>
    <portlet-class>com.perceptive.ctms.test.portlet.TestPortlet</portlet-class>

    <init-param>
      <name>ServletContextProvider</name>
      <value>com.liferay.util.bridges.struts.LiferayServletContextProviderWrapper</value>
    </init-param>
    <init-param>
      <name>StrutsPortletConfigLocation</name>
      <value>/WEB-INF/struts-portlet-config.xml</value>
    </init-param>
    <init-param>
      <name>HelpPage</name>
      <value>/portlet_action/test/help</value>
    </init-param>
    <init-param>
      <name>ViewPage</name>
      <value>/portlet_action/test/start</value>
    </init-param>
    <init-param>
      <name>EditPage</name>
      <value>/portlet_action/test/preferences</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>
      <portlet-mode>help</portlet-mode>
    </supports>
    <portlet-info>
      <title>Test</title>
      <short-title>Test</short-title>
      <keywords>Test</keywords>
    </portlet-info>
  </portlet>

  <filter>
    <filter-name>AuthenticationFilter</filter-name>
    <filter-class>com.perceptive.ctms.framework.portlet.filter.AuthenticationFilter</filter-class>
    <lifecycle>RENDER_PHASE</lifecycle>
    <lifecycle>ACTION_PHASE</lifecycle>
  </filter>

  <filter-mapping>
    <filter-name>AuthenticationFilter</filter-name>
    <portlet-name>test</portlet-name>
  </filter-mapping>
</portlet-app>

und struts-portlet-config.xml ist:

<?xml version="1.0" encoding="UTF-8"?>

<config>
  <render-context>
    <attribute name="errors"/>
    <attribute name="message" keep="true"/>
    <attribute prefix="com.perceptive" keep="true"/>
  </render-context>
  <portlet-url-type default="render">
    <render path="/test/help.do"/>
    <render path="/test/start.do"/>
    <render path="/test/preferences.do"/>
    <render path="/test/tableTest.do"/>
    <render path="/test/displayTagTest.do"/>
    <render path="/test/lookupTest.do"/>
    <render path="/test/lookupTestSave.do"/>
  </portlet-url-type>
</config>

PS Ich habe dies bereits in den Liferay -Foren gefragt, frage aber auch hier in der Hoffnung auf eine schnelle Antwort.

War es hilfreich?

Lösung

In dem portlet.xml Versuchen Sie, die Linie zu ändern:

<expiration-cache>0</expiration-cache>

Dies bedeutet, dass die zwischengespeicherte Version des Portlets sofort ausgeht:

<expiration-cache>-1</expiration-cache>

Was bedeutet, dass es niemals abläuft. Von dem portlet-app_2_0.xsd:

<annotation>
    <documentation>
        Expiration-time defines the time in seconds after which the portlet output expires. 
        -1 indicates that the output never expires.
        Used in: portlet
    </documentation>
</annotation>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top