gpt4 book ai didi

java - 当使用另一个 portlet 时,我可以使基于 struts 的 portlet 记住它的 View 吗?

转载 作者:行者123 更新时间:2023-12-02 08:37:24 25 4
gpt4 key购买 nike

我已经使用 struts portlet 桥编写了一个相当基本的 portlet 并将其部署到 liferay,我的 portlet 中的导航似乎很好,但是每当我单击门户中另一个 portlet 上的链接时,我的 portlet 就会恢复到中的 View 操作设置我的 portlet.xml 而不是重新呈现现有状态。我做错了什么?

我的portlet.xml是:

<?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>

struts-portlet-config.xml是:

<?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 我已经在 liferay 论坛上问过这个问题,但我也在这里问,希望能得到快速答复。

最佳答案

portlet.xml 中尝试更改以下行:

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

这意味着 portlet 的缓存版本会立即过期:

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

这意味着它永远不会过期。来自 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>

关于java - 当使用另一个 portlet 时,我可以使基于 struts 的 portlet 记住它的 View 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1205926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com