| Liferay是经过商业考验的开源Portal项目,它自带了丰富的Portlet和例子。 |
| Progress is the activity of today and the assurance of tomorrow . |
| (Emerson, American thinker ) |
| 进步是今天的活动、明天的保证。 (美国思想家 家默生) |
| Liferay Portal企业版,构建在Portlet API(JSR 168之上)并且有为用户提供了丰富的Portlets。 |
| I.HelloWorld |
| a.这个Portlet定义在 /portal-web/docroot/WEB-INF/portlet.xml中: |
| <portlet> |
| <portlet-name>47</portlet-name> |
| <display-name>Hello World</display-name> |
| <portlet-class> |
| com.liferay.portlet.helloworld.HelloWorldPortlet |
| </portlet-class> |
| <expiration-cache>0</expiration-cache> |
| <supports> |
| <mime-type>text/html</mime-type> |
| </supports> |
| <portlet-info> |
| <title>Hello World</title> |
| <short-title>Hello World</short-title> |
| <keywords>Hello World</keywords> |
| </portlet-info> |
| <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的唯一标识:47. |
| 这个HelloWorldPortlet扩展自 Javax.portlet.GenericPortlet.源代码:source 它仅仅是打印出 Hello World字样。 |
| 标题定义在Portlet-info中。用户必须拥有Power User或者是User权限才能访问这个Portlet.指定何种roles可以在运行期通过Admin Portlet来指定。 |
| b.可以为Porltet添加额外的定义: /portal-web/docroot/WEB-INF/liferay-portlet.xml |
| <portlet id="47" struts-path="hello_world" narrow="true" /> |
| id值是上面定义过的Portlet的唯一标识。 |
| Struts-path值告诉Struts 所有包含Http://localhost/c/hello_world/*的请求都属于这个Portlet自己的域。 |
| narrow值,如果为真,意味着在窄行中现实这个Portlets。当然,可以通过Admin portlet来在运行期修改。 |
| c.这个portlet显示的信息在/portal-web/docroot/WEB-INF/liferay-display.xml这容许用户通过个性化定制页面来添加它。 |
| <category name="category.test"> |
| <portlet id="47" /> |
| <portlet id="48" /> |
| </category> |
| 当用户转动个性化页面,点击一个分类来选择一个porltet,那么你可以在关键词为category.test的分类中找到这个portlet。这个关键词的值可以定义在/portal-ejb/classes/content/Language.properties. |
| category.test=Test |
| II.IFrame |
| a.它定义在/portal-web/docroot/WEB-INF/portlet.xml |
| <portlet> |
| <portlet-name>48</portlet-name> |
| <display-name>IFrame</display-name> |
| <portlet-class>com.liferay.portlet.IFramePortlet</portlet-class> |
| <expiration-cache>0</expiration-cache> |
| <supports> |
| <mime-type>text/html</mime-type> |
| <portlet-mode>edit</portlet-mode> |
| </supports> |
| <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle> |
| <portlet-preferences> |
| <preference> |
| <name>src</name> |
| <value>http://www.gfa.org</value> |
| </preference> |
| <preference> |
| <name>auth</name> |
| <value>false</value> |
| </preference> |
| <preference> |
| <name>auth-type</name> |
| <value>basic</value> |
| </preference> |
| <preference> |
| <name>form-method</name> |
| <value>post</value> |
| </preference> |
| <preference> |
| <name>user-name</name> |
| <value></value> |
| </preference> |
| <preference> |
| <name>password</name> |
| <value></value> |
| </preference> |
| <preference> |
| <name>hidden-variables</name> |
| <value>var1=hello;var2=world</value> |
| </preference> |
| </portlet-preferences> |
| <security-role-ref> |
| <role-name>Power User</role-name> |
| </security-role-ref> |
| <security-role-ref> |
| <role-name>User</role-name> |
| </security-role-ref> |
| </portlet> |
| IFramePortlet类继承自 javax.portlet.GenericPortlet。它们代码:source 它仅仅是打印一个IFRAME tag的代码来应用外部站点的内容。 |
| scr 指定绑定到外部资源的地址。 |
| auth:需要认证否 |
| auth-type 可以选择basic或者是form,认证方式,是通过添加URL信息认证还是需要表单认证。 |
| form-method 值可以设置为get或者是post。 |
| user-name认证所需的用户名 |
| password:密码 |
| b.标题通过StrutsResourceBundle取得,配置在 /portal-ejb/classes/content/Language.properties. |
| javax.portlet.title.48=IFrame. |
| c.额外的配置在/portal-web/docroot/WEB-INF/liferay-portlet.xml中: |
| <portlet id="48" struts-path="iframe" /> |
Liferay二次开发示例
最新推荐文章于 2016-08-18 11:20:05 发布
本文介绍Liferay Portal中的Portlet实现细节,包括HelloWorld Portlet和IFrame Portlet的具体配置与展示方式。HelloWorld Portlet展示了基本的Portlet API使用方法,而IFrame Portlet则用于嵌入外部网站内容。
178

被折叠的 条评论
为什么被折叠?



