当前位置: 首页 > 知识库问答 >
问题:

Liferay:创建portlet配置页面。如何提供正确的jsp路径?

陈瀚玥
2023-03-14

我想为liferay portlet创建一个配置页面。

portlet.xml的一些代码

<portlet-name>example-config</portlet-name>
    <display-name>example-to-delete</display-name>
    <portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
    <init-param>
        <name>contextConfigLocation</name>
        <value>/WEB-INF/spring-context/portlet/example-config-portlet.xml</value>
    </init-param>
    <init-param>
        <name>config-jsp</name>
        <value>/WEB-INF/html/jsp/config.jsp</value>
    </init-param>

配置

public class ConfigurationActionImpl implements ConfigurationAction {

@Override
public void processAction(PortletConfig portletConfig, ActionRequest actionRequest,
                          ActionResponse actionResponse) throws Exception {

}

@Override
public String render(PortletConfig portletConfig, RenderRequest renderRequest,
                     RenderResponse renderResponse) throws Exception {
    System.out.println("RENDER CALL");
    return "/html/jsp/config.jsp";
}
}

liferay-portlet.xml

<portlet>
    <portlet-name>example-to-delete</portlet-name>
    <icon>/icon.png</icon>
    <configuration-action-class>by.example.ConfigurationActionImpl</configuration-action-class>
    <instanceable>false</instanceable>      
</portlet>

共有1个答案

宰父存
2023-03-14

如果配置操作类扩展了DefaultConfigurationAction,那么在portlet中将JSP路径指定为init param就足够了。xml(configTemplateconfig jsp是同样有效的名称)。您不必重写render方法。

在您的情况下,配置操作类没有扩展DefaultConfigurationAction,因此init参数毫无用处。

JSP路径必须始终从类路径根开始-即。对于放置在那里的JSP,请从/WEB-INF开始。

有关portlet配置的完整描述,请参见《开发人员指南》。

您还可以使用Spring Portlet MVC框架(如问题所示)开发可配置的Portlet。这意味着为编辑portlet模式创建一个专用控制器(@controller@RequestMapping(“编辑”))。使用Spring,您可以以与portlet视图模式相同的方式实现配置(即使用相同的JSP标记、表单绑定、验证以及Spring框架带来的所有便利)。

 类似资料:
  • 在Liferay IDE中创建portlet时,我已将其配置为具有Liferay的配置模式。作为回应,wizart创建了包含以下文本的JSP文件: 如何从Liferay调用此页面查看此文本?单击扳手图标并选择时,我看不到类似的内容。 更新 路径设置正确,因为它是由向导设置的。 问题是如何通过鼠标从Web界面调用这个JSP?

  • 我们正在使用Liferay 7.3(CE),并试图用“页面碎片”来拥抱相对较新的“内容页面”功能。我们能够使用

  • 我使用Liferay来管理web内容。我希望我的最终用户创建web内容,但我不希望他们去后台管理它。 所以我想要一个可以在公共页面中设置的portlet,它允许最终用户直接在公共页面中创建Web内容。 有没有使用Liferay 6.1或需要代码的简单方法?

  • 问题内容: 我在尝试在 Liferay 6.0 portlet中 设置会话cookie时遇到问题。我希望能够将cookie设置为客户端浏览器,以存储用于linkedin身份验证的应用程序密钥,然后可以在其中通过其他portlet检索它。 我可以使用以下方法读取Cookie: 这是我阅读失败的尝试。 问题答案: 我发现,无需大量修改Liferay门户本身,设置portlet cookie的唯一方法就

  • 首先,我对Liferay非常陌生,即使在阅读了这些文档之后,我可能也不知道自己在做什么。 我正在尝试在Liferay portlet中设置一个自定义jsp页面。我的jsp结构如下: 这些都放在我的portlet视图中。然而,我在我的portlet中看不到任何显示。我的所有源代码和映射都是正确的,但似乎我只能在portlet中显示常规文本。 我正在使用Liferay插件SDK和Eclipse的最新版

  • 我的页面上有大约4个Portlet和2个web内容。在4个portlet中,一个是定制portlet。我的需求就像我需要在最后加载我的定制portlet一样。我知道我们可以通过在liferay portlet中添加以下条目来设置。xml