- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在liferay中开发基于Spring MVC的portlet。基本上我想在单个 liferay 项目本身中配置和维护 2 或 3 个 portlet。有人可以指导我进行相同的配置吗?就像 portlet.xml、spring 配置和 web 配置(如果需要)的配置代码。我只需要为所有 portlet 配置一个默认 Controller ,这样每个 portlet 就会登陆不同的登陆页面。
有人知道如何配置这些 portlet 吗?任何建议都会有帮助。
提前致谢。
最佳答案
据我了解,您希望在一个 .war 文件中配置多个 portlet。这非常简单,您所需要做的就是在几个 xml 文件中正确配置它们。下面我为您准备了在 6.2 liferay 版本中定义 3 个 portlet 所需的几个配置文件:
liferay-display.xml
<?xml version="1.0"?>
<!DOCTYPE display PUBLIC "-//Liferay//DTD Display 6.2.0//EN" "http://www.liferay.com/dtd/liferay-display_6_2_0.dtd">
<display>
<category name="category.amg">
<portlet id="first-portlet" />
<portlet id="second-portlet" />
<portlet id="third-portlet" />
</category>
</display>
liferay-portlet.xml
<?xml version="1.0"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.2.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_2_0.dtd">
<liferay-portlet-app>
<portlet>
<portlet-name>first-portlet</portlet-name>
<icon>/icon.png</icon>
<instanceable>true</instanceable>
<private-request-attributes>false</private-request-attributes>
<requires-namespaced-parameters>false</requires-namespaced-parameters>
<render-weight>1000</render-weight>
</portlet>
<portlet>
<portlet-name>second-portlet</portlet-name>
<icon>/icon.png</icon>
<instanceable>true</instanceable>
<private-request-attributes>false</private-request-attributes>
<requires-namespaced-parameters>false</requires-namespaced-parameters>
<render-weight>1000</render-weight>
</portlet>
<portlet>
<portlet-name>third-portlet</portlet-name>
<icon>/icon.png</icon>
<instanceable>false</instanceable>
<private-request-attributes>false</private-request-attributes>
<requires-namespaced-parameters>false</requires-namespaced-parameters>
<render-weight>1000</render-weight>
</portlet>
<role-mapper>
<role-name>administrator</role-name>
<role-link>Administrator</role-link>
</role-mapper>
<role-mapper>
<role-name>guest</role-name>
<role-link>Guest</role-link>
</role-mapper>
<role-mapper>
<role-name>power-user</role-name>
<role-link>Power User</role-link>
</role-mapper>
<role-mapper>
<role-name>user</role-name>
<role-link>User</role-link>
</role-mapper>
</liferay-portlet-app>
portlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<portlet-app version="2.0"
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">
<portlet>
<portlet-name>first-portlet</portlet-name>
<display-name>first-portlet</display-name>
<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
<init-param>
<name>contextConfigLocation</name>
<value>/WEB-INF/context/first-portlet.xml</value>
</init-param>
<init-param>
<name>check-auth-token</name>
<value>false</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
<portlet-mode>edit</portlet-mode>
</supports>
<supported-locale>pl</supported-locale>
<supported-locale>en</supported-locale>
<resource-bundle>portlets-names.first-portlet</resource-bundle>
<portlet-info>
<title>first portlet</title>
<short-title>first</short-title>
<keywords>first</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>
<portlet>
<portlet-name>second-portlet</portlet-name>
<display-name>second-portlet</display-name>
<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
<init-param>
<name>contextConfigLocation</name>
<value>/WEB-INF/context/second-portlet.xml</value>
</init-param>
<init-param>
<name>check-auth-token</name>
<value>false</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
<portlet-mode>edit</portlet-mode>
</supports>
<supported-locale>pl</supported-locale>
<supported-locale>en</supported-locale>
<resource-bundle>portlets-names.second</resource-bundle>
<portlet-info>
<title>second portlet</title>
<short-title>second</short-title>
<keywords>second</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>
<portlet>
<portlet-name>third-portlet</portlet-name>
<display-name>third-portlet</display-name>
<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
<init-param>
<name>contextConfigLocation</name>
<value>/WEB-INF/context/third-portlet.xml</value>
</init-param>
<init-param>
<name>check-auth-token</name>
<value>false</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
</supports>
<supported-locale>pl</supported-locale>
<supported-locale>en</supported-locale>
<resource-bundle>portlets-names.third</resource-bundle>
<portlet-info>
<title>third portlet</title>
<short-title>third</short-title>
<keywords>third</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>
</portlet-app>
还要确保为 portlet.xml 中定义的每个 portlet 添加上下文文件
这就是树,它最终应该是 3 个 portlet 的样子
.
├── main
│ ├── java
..... your java sources.....
.....................
│ ├── resources
│ │ ├── first-portlet_en_US.properties
│ │ ├── first-portlet_pl_PL.properties
│ │ ├── first-portlet.properties
│ │ ├── second-friendly-url-routes.xml
│ │ ├── second-portlet_en_US.properties
│ │ ├── second-portlet_pl_PL.properties
│ │ ├── second-portlet.properties
│ │ ├── third-friendly-url-routes.xml
│ │ ├── third-portlet_en_US.properties
│ │ ├── third-portlet_pl_PL.properties
│ │ ├── third-portlet.properties
│ │ ├── portlet.properties
│ │ ├── portlets-names
│ │ │ ├── first_en_US.properties
│ │ │ ├── first_pl_PL.properties
│ │ │ ├── first.properties
│ │ │ ├── second_en_US.properties
│ │ │ ├── second_pl_PL.properties
│ │ │ ├── second.properties
│ │ │ ├── third_en_US.properties
│ │ │ ├── third_pl_PL.properties
│ │ │ ├── third.properties
│ │ └── resource-actions
│ │ └── default.xml
│ └── webapp
│ ├── css
│ │ └── third-uploader.css
│ ├── icon.png
│ └── WEB-INF
│ ├── context
│ │ ├── first-portlet.xml
│ │ ├── common.xml
│ │ ├── second-portlet.xml
│ │ └── third-portlet.xml
│ ├── jsp
│ │ ├── first
│ │ │ ├── article-details-view.jsp
│ │ │ ├── first-edit.jsp
│ │ │ └── first-view.jsp
│ │ ├── second
│ │ │ ├── second-details-view.jsp
│ │ │ ├── second-edit.jsp
│ │ │ └── second-list-view.jsp
│ │ ├── init.jsp
│ │ └── third
│ │ ├── third-filter-view.jsp
│ │ ├── third-more-page-view.jsp
│ │ ├── third-view.jsp
│ │ └── uploader
│ │ └── uploader-view.jsp
│ ├── liferay-display.xml
│ ├── liferay-plugin-package.properties
│ ├── liferay-portlet.xml
│ ├── log4j.properties
│ ├── portlet.xml
│ └── web.xml
└── test
关于java - Liferay : Configuring Multiple Spring MVC Portlets in one liferay plugin project with one common controller and multiple landing pages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27497494/
假设我正在向 Liferay Portal 内的不同 portlet 添加数据。所有这些数据都保存在哪里? 最佳答案 Liferay 附带的大多数开箱即用的 portlet,如博客、论坛、Wiki、W
我需要的是: Administrator-level-1(可以编辑所有2级和3级的简单用户和管理员) Administrator-level-2(可以编辑所有普通用户和3级管理员) 管理员级别 3(甚
我在 liferay 工作。我们在我们的项目中使用一个模块来创建 liferay 主题。我使用命令 ant -Ddeploy.war=true 将它部署在服务器中。 war 文件在 liferay 部
我需要一个简单的 Liferay Web 表单扩展,以增强 Liferay 7 Web 表单中填充的数据的文件附件。 还需要将此文件作为附件随电子邮件发送给注册用户。 我知道如何在 liferay 6
When Local Live staging is enabled for a site, a clone of the site is created containing copies of a
我在 liferay 工作。我们在我们的项目中使用一个模块来创建 liferay 主题。我使用命令 ant -Ddeploy.war=true 将它部署在服务器中。 war 文件在 liferay 部
插件的代码如何访问在其自己的 liferay-plugin-package.properties 文件中设置的属性? 最佳答案 您可以使用 DeployManagerUtil 首先导入以下内容: im
Liferay 7 GA1 刚刚发布,但文档尚未完成。如何将默认的 liferay Logo 更改为公司 Logo ?当然,我希望每个网站都有一个自定义 Logo 。 最佳答案 进入控制面板->配置-
我一直在阅读有关从 liferay 6 迁移到 liferay 7 的 liferay 文档 ( https://dev.liferay.com/develop/tutorials/-/knowled
我想问一个关于是否应该迁移到 Liferay 6.2 的问题。 我和我的团队从 4 个月开始就在使用 Liferay 6.1(CE 版)开发的一个相当大的门户网站上工作,现在,由于项目发布日期仍然提前
我是 liferay 的新手,我几乎确信这非常简单:使用速度标记,我希望能够生成指向 Liferay 网站内页面的链接,并将它们嵌入到不同页面上的 portlet 中。 我对如何完成它有一个模糊的想法
我想知道为用户分配的站点角色名称列表。所以我尝试如下, List userRolesList = RoleLocalServiceUtil.getUserRoles(userid);
同样,我们是否有任何可能的解决方案来避免使用扩展方法/自定义实现/ Hook /插件/扩展将用户信息填充到 liferay 数据库中以进行身份验证? 问候维沙尔 G 最佳答案 无法避免在 Life
只是想知道任何一个与 liferay 集成的 wicket 。 在启用 ajax 的情况下对 wicket portlet 进行编码有多难? 有人在生产中使用 wicket portlet 吗? 最佳
我们在liferay 中有一个叫做嵌套portlet 的东西。我想通过代码动态添加这个 portlet。有谁知道用于添加嵌套 portlet 并在其中添加其他 portlet 的代码? 谢谢 !!!
如何以编程方式获取 Liferay 默认语言或区域设置? 最佳答案 检查 com.liferay.portal.kernel.util.LocaleUtil 类方法: LocaleUtil.getDe
是否可以在 service.xml 文件中不配置任何数据库表的情况下创建 liferay 服务构建器。 实际上这里的目的是使用 liferay 服务构建器创建一个服务层。并且在这个服务层没有直接与数据
众所周知,Liferay 具有创建用户的内置功能。但我希望有一个创建用户的工作流程,其中涉及批准过程。我的意思是,用户将由管理员创建,但它应该由另一个授权人批准,然后只有用户帐户将处于事件状态。 有什
我正在使用liferay6.1 和Java SDK 开发liferay portlet。 当用户登录并单击控制面板时,他们可以看到各种选项。有没有办法隐藏这个选项? 我还是新手,但我认为您可以将它从
我发现了如何使用journalContentUtil.getContent方法将Web Content嵌入Liferay 6.2主题中。我的问题是在Liferay 7中如何做同样的事情? 最佳答案 我
我是一名优秀的程序员,十分优秀!