【发布时间】:2015-06-29 21:33:07
【问题描述】:
我在一个 portlet 中有 10 个不同的子 portlet。在 portlet.xml 文件中我的配置是::
<portlet>
<portlet-name>portletA</portlet-name>
<display-name>portletA</display-name>
<portlet-class>com.liferay.util.bridges.mvc.MVCPortlet</portlet-class>
<init-param>
<name>view-template</name>
<value>/view-a.jsp</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
</supports>
<portlet-info>
<title>A</title>
<short-title>A</short-title>
<keywords>A</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>PortletB</portlet-name>
<display-name>PortletB</display-name>
<portlet-class>com.liferay.util.bridges.mvc.MVCPortlet</portlet-class>
<init-param>
<name>view-template</name>
<value>/view-b.jsp</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
</supports>
<portlet-info>
<title>B</title>
<short-title>B</short-title>
<keywords>B</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 编写相同的代码。 在 View 中,我必须编写一种操作方法,这对于所有 portlet 都是相同的。我怎样才能做到这一点。我正在考虑编写@doview,但我不确定在这种情况下我的 portlet 类是什么以及如何将不同的操作发送到同一个类。
【问题讨论】:
-
你的意思是在一个插件中有10个不同的portlet? Liferay 中的多个portlet 是否可以只有一个控制器 的答案是是的,但我不明白您的问题是什么?您是否尝试按照您描述的方式实施它并遇到问题?
-
我只是想知道 'Portlet-class' 的值应该是什么 我需要为每个 portlet 编写单独的类吗?
-
@Nisha 绝对不是...将相同的类声明为门户类是很常见的(正如 Tobias 所写,Liferay 将为每个 portlet 创建不同的实例),因为常见的框架(例如 Spring -mvc 或 LR 本身)提供一个(或几个)类(例如您使用的 LR oob MVCPortlet)来包装 portlet 生命周期,让您只编写代码(无需编写 doview 或担心调度portlet 中的请求)
标签: liferay liferay-6 liferay-aui