几个 portlet 中的 Liferay 搜索
Liferay search in several portlets
用户将看到 4 个 portlet:
1.自定义 Github portlet,可以在存储库中看到来自用户的不同提交
2.自定义jira portlet,显示来自用户的任务
3. 用户订购文件的NAS服务器
4. 另一个包含用户订购文档的数据库
我想要一个 "Main search field" 可以输入用户名并更新来自该搜索的所有 portlet。
这可能吗?如果是,如何做到这一点?
一般来说,自定义 portlet 的好教程会很好
最好的方法是 "Public render parameters",而且很简单。
这是一个例子:
<?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 http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">
<portlet>
<portlet-name>P1</portlet-name>
<display-name>P1</display-name>
<portlet-class>PortletClass1</portlet-class>
...
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
...
<supported-public-render-parameter>param1</supported-public-render-parameter>
</portlet>
<portlet>
<portlet-name>P2</portlet-name>
<display-name>P2</display-name>
<portlet-class>PortletClass2</portlet-class>
...
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
...
<supported-public-render-parameter>param2</supported-public-render-parameter>
</portlet>
...
<public-render-parameter>
<identifier>param1</identifier>
<qname xmlns:x="http://www.liferay.com/public-render-parameters">x:param1</qname>
</public-render-parameter>
<public-render-parameter>
<identifier>param2</identifier>
<qname xmlns:x="http://www.liferay.com/public-render-parameters">x:param2</qname>
</public-render-parameter>
</portlet-app>
在示例中,Portlet P1 可以修改参数 "param1",P2 可以修改参数 "param2",当这些 Portlet 之一修改他的参数时,其他 Portlet 可以像普通参数一样读取此参数:
request.getParameter(“param1”);
用户将看到 4 个 portlet: 1.自定义 Github portlet,可以在存储库中看到来自用户的不同提交 2.自定义jira portlet,显示来自用户的任务 3. 用户订购文件的NAS服务器 4. 另一个包含用户订购文档的数据库
我想要一个 "Main search field" 可以输入用户名并更新来自该搜索的所有 portlet。
这可能吗?如果是,如何做到这一点?
一般来说,自定义 portlet 的好教程会很好
最好的方法是 "Public render parameters",而且很简单。
这是一个例子:
<?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 http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">
<portlet>
<portlet-name>P1</portlet-name>
<display-name>P1</display-name>
<portlet-class>PortletClass1</portlet-class>
...
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
...
<supported-public-render-parameter>param1</supported-public-render-parameter>
</portlet>
<portlet>
<portlet-name>P2</portlet-name>
<display-name>P2</display-name>
<portlet-class>PortletClass2</portlet-class>
...
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
...
<supported-public-render-parameter>param2</supported-public-render-parameter>
</portlet>
...
<public-render-parameter>
<identifier>param1</identifier>
<qname xmlns:x="http://www.liferay.com/public-render-parameters">x:param1</qname>
</public-render-parameter>
<public-render-parameter>
<identifier>param2</identifier>
<qname xmlns:x="http://www.liferay.com/public-render-parameters">x:param2</qname>
</public-render-parameter>
</portlet-app>
在示例中,Portlet P1 可以修改参数 "param1",P2 可以修改参数 "param2",当这些 Portlet 之一修改他的参数时,其他 Portlet 可以像普通参数一样读取此参数:
request.getParameter(“param1”);