- 浏览: 193166 次
- 性别:
- 来自: 昆明
最新评论
-
IT枪王:
免费的真好
Oracle_SOA_Suite_11g入门实例 -
SINCE1978:
jsr168 portlet不过是sun又一个半死不活的规范, ...
Liferay Portal 6学习笔记3:Liferay IDE的安装使用 -
xhbgq:
谢谢分享,虽然没明白为啥要二维数组才能解决,可能还有好的办法, ...
axis2客户端调用时ArrayOf_xsd_string类型的处理 -
ahuuhl:
楼主好人!
Oracle_SOA_Suite_11g入门实例 -
aswedas:
请问为什么用手机登录liferay不能使用chat功能
Liferay Portal 6学习笔记4:Liferay开发模式介绍
这篇所说的Struts Portlet是在Ext环境下开发的,使用liferay里面集成的Struts 1.2
开发流程图
本文是基于以前的在Liferay IDE里面创建的ext环境开发。
准备工作
1、在ext-web目录下面创建如下目录/html/portlet/struts
2、在ext-impl/src下面创建包content,并在这个包下面创建文件Language-ext_zh_CN.properties
3、将tomcat/webapps/root/WEB-INF下面的liferay-display.xml文件copy到ext环境下面的WEB-INF目录下面。
配置Portlet:portlet-ext
在portlet-ext.xml里面写入如下内容
<portlet> <portlet-name>strutsdemo</portlet-name> <display-name>strutsdemos</display-name> <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class> <init-param> <name>view-action</name> <value>/strutsportlet/demo</value> </init-param> <expiration-cache>0</expiration-cache> <supports> <mime-type>text/html</mime-type> </supports> <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle> <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实例属性:Liferay-portlet-ext
在liferay-portlet-ext里面写入,如下内容
<portlet> <portlet-name>strutsdemo</portlet-name> <struts-path>strutsportlet</struts-path> <use-default-template>false</use-default-template> </portlet>
注意:这里的Struts-path是上面配置的value里面的第一个“/”和最后一个“/”之间的内容
portlet-name必须和上面的一样。
归类Portlet:liferay-display
在Liferay-display里面将上面的portlet归类显示:
<category name="category.sample"> <portlet id="47" /> <portlet id="48" /> <portlet id="50" /> <portlet id="66" /> <portlet id="strutsdemo"/> </category>
将其放入示例下面,这里的归类,根据自己的需要。
国际化
在这个文件Language-ext_zh_CN.properties里面写入我让要让这个portlet显示的名字:
javax.portlet.title.strutsdemo=strutsportlet\u793a\u4f8b
这里的中文要使用native2ascii进行转义。
定义Struts页面流
在struts-config-ext.xml里面写入如下内容:
<action path="/strutsportlet/demo" type="com.liferay.portlet.strutsdemo.StrutsAction"> <forward name="sturts_portlet.view" path="sturts_portlet.view" /> <forward name="sturts_portlet.success" path="sturts_portlet.success" /> <forward name="sturts_portlet.err" path="sturts_portlet.err"/> </action>
这里的path,是前面的portlet-ext.xml里面定义的。其他的和普通Struts一样
定义title页面布局
在tiles-defs-ext.xml里面写入如下内容:
<definition name="portlet.ext" extends="portlet" /> <definition name="sturts_portlet.view" extends="portlet.ext"> <put name="portlet_content" value="/portlet/struts/view.jsp" /> </definition> <definition name="sturts_portlet.success" extends="portlet.ext"> <put name="portlet_content" value="/portlet/struts/success.jsp" /> </definition> <definition name="sturts_portlet.err" extends="portlet.ext"> <put name="portlet_content" value="/portlet/struts/error.jsp" /> </definition>
这里的portlet.ext继承自portlet,也就是说portlet.ex会使用portlet.jsp作为他的模板。下面的这些同理。
创建view.jsp
在/html/portlet/struts下面创建init.jsp文件,在里面写入如下内容:
<%@ include file="/html/portlet/init.jsp" %>
这里会报错,不用理会,因为这是通过ext环境开发的,部署后就会找到这个文件的。
创建view.jsp,内容如下:
<%@ page contentType="text/html; charset=UTF-8" %> <%@ include file="/html/portlet/struts/init.jsp" %> This is the <b>LiferayStudy</b> portlet. <portlet:actionURL var="submitUrl"> <portlet:param name="struts_action" value="/strutsportlet/demo" /> </portlet:actionURL> <form action="<%=submitUrl%>" method="post"> 输入你的名字:<input type="text" id="name" name="name"> <input type="submit"" value="提交"> </form>
portlet标签的意思,请参看
Liferay Portal 6学习笔记1:Portal介绍
创建Action类
package com.liferay.portlet.strutsdemo;
import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.PortletConfig; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.liferay.portal.struts.PortletAction; public class StrutsAction extends PortletAction { public void processAction(ActionMapping mapping, ActionForm form, PortletConfig config, ActionRequest req, ActionResponse res) throws Exception { String name = req.getParameter("name"); if (null == name || "".equals(name)) { setForward(req, "sturts_portlet.err"); } else { setForward(req, "sturts_portlet.success"); } } public ActionForward render(ActionMapping mapping, ActionForm form, PortletConfig config, RenderRequest req, RenderResponse res) throws Exception { if (getForward(req) != null && !getForward(req).equals("")) { return mapping.findForward(getForward(req)); } else { return mapping.findForward("sturts_portlet.view"); } } }
成功和错误页面不在写,可以根据自己的需要编写了
部署Portlet
打开Ant界面,Eclipse--》show views--》ant 添加build文件,找到Ext工程下面的build.xml文件,点击其中的
Direct-deploy。
完成之后,启动liferay-tomcat
在浏览中输入http://localhost:8080,登录,添加portlet
评论
08:21:04,484 ERROR [IncludeTag:231] Current URL /c/portal/render_portlet generates exception: java.util.MissingResourceException: Can't find resource for bundle com.liferay.portlet.PortletResourceBundle, key javax.portlet.title
08:21:04,484 ERROR [IncludeTag:154] java.util.MissingResourceException: Can't find resource for bundle com.liferay.portlet.PortletResourceBundle, key javax.portlet.title
at java.util.ResourceBundle.getObject(ResourceBundle.java:374)
at java.util.ResourceBundle.getString(ResourceBundle.java:334)
at com.liferay.portal.util.PortalImpl.getPortletTitle(PortalImpl.java:2526)
at com.liferay.portal.util.PortalUtil.getPortletTitle(PortalUtil.java:774)
at com.liferay.portal.util.comparator.PortletTitleComparator.compare(PortletTitleComparator.java:52)
at com.liferay.portal.util.comparator.PortletTitleComparator.compare(PortletTitleComparator.java:1)
at java.util.Arrays.mergeSort(Arrays.java:1270)
at java.util.Arrays.mergeSort(Arrays.java:1282)
at java.util.Arrays.sort(Arrays.java:1210)
at java.util.Collections.sort(Collections.java:159)
at com.liferay.portal.kernel.util.ListUtil.sort(ListUtil.java:176)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
你检查一下你的title和portlet里面定义是的是否一样?
我是完全按照你的代码复制来的,能方便把你练习做的代码发来参考一下吗?感激不尽,最好多发几个啊,邮箱 liuyake@yeah.net
大哥我也碰到了这个问题,你怎么解决的啊,共享一下啊
我也是这个问题,能提供下解决方案么?我检查了title和portlet 里面确实是一样的啊。 我用的是6.05
这个最终怎么解决的
wuxinglec@gmail.com
非常感谢!!!!
08:21:04,484 ERROR [IncludeTag:231] Current URL /c/portal/render_portlet generates exception: java.util.MissingResourceException: Can't find resource for bundle com.liferay.portlet.PortletResourceBundle, key javax.portlet.title
08:21:04,484 ERROR [IncludeTag:154] java.util.MissingResourceException: Can't find resource for bundle com.liferay.portlet.PortletResourceBundle, key javax.portlet.title
at java.util.ResourceBundle.getObject(ResourceBundle.java:374)
at java.util.ResourceBundle.getString(ResourceBundle.java:334)
at com.liferay.portal.util.PortalImpl.getPortletTitle(PortalImpl.java:2526)
at com.liferay.portal.util.PortalUtil.getPortletTitle(PortalUtil.java:774)
at com.liferay.portal.util.comparator.PortletTitleComparator.compare(PortletTitleComparator.java:52)
at com.liferay.portal.util.comparator.PortletTitleComparator.compare(PortletTitleComparator.java:1)
at java.util.Arrays.mergeSort(Arrays.java:1270)
at java.util.Arrays.mergeSort(Arrays.java:1282)
at java.util.Arrays.sort(Arrays.java:1210)
at java.util.Collections.sort(Collections.java:159)
at com.liferay.portal.kernel.util.ListUtil.sort(ListUtil.java:176)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
你检查一下你的title和portlet里面定义是的是否一样?
我是完全按照你的代码复制来的,能方便把你练习做的代码发来参考一下吗?感激不尽,最好多发几个啊,邮箱 liuyake@yeah.net
大哥我也碰到了这个问题,你怎么解决的啊,共享一下啊
我也是这个问题,能提供下解决方案么?我检查了title和portlet 里面确实是一样的啊。 我用的是6.05
598048929@qq.com
等晚上回去看看以前写的小例子还在不
PS:LZ,是怎么学习关于liferay portal这方面的相关知识的?
我学习Liferay,基本上就是自己写做一个小例子,然后翻一下Liferay自带的示例,然后自己仔细的理解一下portlet的工作原理
其实理解了portlet的工作原理,就发现liferay或者其他portal的实现基本上都差不多,和普通的web工程没有多少区别的
598048929@qq.com
PS:LZ,是怎么学习关于liferay portal这方面的相关知识的?
08:21:04,484 ERROR [IncludeTag:231] Current URL /c/portal/render_portlet generates exception: java.util.MissingResourceException: Can't find resource for bundle com.liferay.portlet.PortletResourceBundle, key javax.portlet.title
08:21:04,484 ERROR [IncludeTag:154] java.util.MissingResourceException: Can't find resource for bundle com.liferay.portlet.PortletResourceBundle, key javax.portlet.title
at java.util.ResourceBundle.getObject(ResourceBundle.java:374)
at java.util.ResourceBundle.getString(ResourceBundle.java:334)
at com.liferay.portal.util.PortalImpl.getPortletTitle(PortalImpl.java:2526)
at com.liferay.portal.util.PortalUtil.getPortletTitle(PortalUtil.java:774)
at com.liferay.portal.util.comparator.PortletTitleComparator.compare(PortletTitleComparator.java:52)
at com.liferay.portal.util.comparator.PortletTitleComparator.compare(PortletTitleComparator.java:1)
at java.util.Arrays.mergeSort(Arrays.java:1270)
at java.util.Arrays.mergeSort(Arrays.java:1282)
at java.util.Arrays.sort(Arrays.java:1210)
at java.util.Collections.sort(Collections.java:159)
at com.liferay.portal.kernel.util.ListUtil.sort(ListUtil.java:176)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
你检查一下你的title和portlet里面定义是的是否一样?
我是完全按照你的代码复制来的,能方便把你练习做的代码发来参考一下吗?感激不尽,最好多发几个啊,邮箱 liuyake@yeah.net
大哥我也碰到了这个问题,你怎么解决的啊,共享一下啊
分类应该是主要在你的liferay-display.xml里面的,我给你发了一份我的这个的示例,你看一下吧~~~
08:21:04,484 ERROR [IncludeTag:231] Current URL /c/portal/render_portlet generates exception: java.util.MissingResourceException: Can't find resource for bundle com.liferay.portlet.PortletResourceBundle, key javax.portlet.title
08:21:04,484 ERROR [IncludeTag:154] java.util.MissingResourceException: Can't find resource for bundle com.liferay.portlet.PortletResourceBundle, key javax.portlet.title
at java.util.ResourceBundle.getObject(ResourceBundle.java:374)
at java.util.ResourceBundle.getString(ResourceBundle.java:334)
at com.liferay.portal.util.PortalImpl.getPortletTitle(PortalImpl.java:2526)
at com.liferay.portal.util.PortalUtil.getPortletTitle(PortalUtil.java:774)
at com.liferay.portal.util.comparator.PortletTitleComparator.compare(PortletTitleComparator.java:52)
at com.liferay.portal.util.comparator.PortletTitleComparator.compare(PortletTitleComparator.java:1)
at java.util.Arrays.mergeSort(Arrays.java:1270)
at java.util.Arrays.mergeSort(Arrays.java:1282)
at java.util.Arrays.sort(Arrays.java:1210)
at java.util.Collections.sort(Collections.java:159)
at com.liferay.portal.kernel.util.ListUtil.sort(ListUtil.java:176)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
你检查一下你的title和portlet里面定义是的是否一样?
我是完全按照你的代码复制来的,能方便把你练习做的代码发来参考一下吗?感激不尽,最好多发几个啊,邮箱 liuyake@yeah.net
08:21:04,484 ERROR [IncludeTag:231] Current URL /c/portal/render_portlet generates exception: java.util.MissingResourceException: Can't find resource for bundle com.liferay.portlet.PortletResourceBundle, key javax.portlet.title
08:21:04,484 ERROR [IncludeTag:154] java.util.MissingResourceException: Can't find resource for bundle com.liferay.portlet.PortletResourceBundle, key javax.portlet.title
at java.util.ResourceBundle.getObject(ResourceBundle.java:374)
at java.util.ResourceBundle.getString(ResourceBundle.java:334)
at com.liferay.portal.util.PortalImpl.getPortletTitle(PortalImpl.java:2526)
at com.liferay.portal.util.PortalUtil.getPortletTitle(PortalUtil.java:774)
at com.liferay.portal.util.comparator.PortletTitleComparator.compare(PortletTitleComparator.java:52)
at com.liferay.portal.util.comparator.PortletTitleComparator.compare(PortletTitleComparator.java:1)
at java.util.Arrays.mergeSort(Arrays.java:1270)
at java.util.Arrays.mergeSort(Arrays.java:1282)
at java.util.Arrays.sort(Arrays.java:1210)
at java.util.Collections.sort(Collections.java:159)
at com.liferay.portal.kernel.util.ListUtil.sort(ListUtil.java:176)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
你检查一下你的title和portlet里面定义是的是否一样?
08:21:04,484 ERROR [IncludeTag:231] Current URL /c/portal/render_portlet generates exception: java.util.MissingResourceException: Can't find resource for bundle com.liferay.portlet.PortletResourceBundle, key javax.portlet.title
08:21:04,484 ERROR [IncludeTag:154] java.util.MissingResourceException: Can't find resource for bundle com.liferay.portlet.PortletResourceBundle, key javax.portlet.title
at java.util.ResourceBundle.getObject(ResourceBundle.java:374)
at java.util.ResourceBundle.getString(ResourceBundle.java:334)
at com.liferay.portal.util.PortalImpl.getPortletTitle(PortalImpl.java:2526)
at com.liferay.portal.util.PortalUtil.getPortletTitle(PortalUtil.java:774)
at com.liferay.portal.util.comparator.PortletTitleComparator.compare(PortletTitleComparator.java:52)
at com.liferay.portal.util.comparator.PortletTitleComparator.compare(PortletTitleComparator.java:1)
at java.util.Arrays.mergeSort(Arrays.java:1270)
at java.util.Arrays.mergeSort(Arrays.java:1282)
at java.util.Arrays.sort(Arrays.java:1210)
at java.util.Collections.sort(Collections.java:159)
at com.liferay.portal.kernel.util.ListUtil.sort(ListUtil.java:176)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
不过在protal里面而不是在ext里面遵循相同的配置过程也可以配置成功么?
可以的,ext就是portal的一个扩展,这些ext文件会和portal里面的合并,同样的会覆盖
不过在protal里面而不是在ext里面遵循相同的配置过程也可以配置成功么?
发表评论
-
个人博客地址
2013-12-06 15:39 0建立了个人博客,地址为:www.huqiwen.com -
在weblogic 11g上部署liferay6
2011-07-22 16:49 4974昨天在weblogic上面部署liferay6,感觉还是有点曲 ... -
在插件模式开发中获取portal相关信息
2011-01-19 09:35 3131在Liferay中以插件模式开发一些功能模块会非常方便,有时候 ... -
运行时判web容器类型及获取web容器相关信息
2010-11-25 15:42 3909当项目要运行在多种应用服务器上,由于不同的服务器有某些不同的特 ... -
LifeRay Portal 6学习笔记8:Liferay的一些常用工具类
2010-09-02 22:22 6823Liferay从早期版本开始就提供了一些封装好的工具类,熟悉这 ... -
Liferay 6.05发布
2010-08-18 19:12 3093在8月16号,Liferay Portal 6.05发布,这是 ... -
LifeRay Portal 6学习笔记7:Liferay的一些常见问题
2010-08-11 15:57 109881、如何删除绑定的tomcat里面的示例数据库 Lifera ... -
LifeRay Portal 6学习笔记6:使用Struts2开发Portlet
2010-08-04 14:09 11658PS:写这些文章的目的是用来记录我学习Liferay Port ... -
Liferay Portal 6学习笔记4:Liferay开发模式介绍
2010-07-27 23:56 15218本篇主要介绍liferay的开发模式 liferay推 ... -
Liferay Portal 6学习笔记3:Liferay IDE的安装使用
2010-07-27 00:20 21926Liferay Portal 6在23号做了 ... -
Liferay Portal 6学习笔记2:Liferay Portal6安装及简单设置
2010-07-23 00:31 17282准备 首先到http:/ ... -
Liferay Portal 6学习笔记1:Portal介绍
2010-07-20 14:04 23103LifeRay Portal 6于7月15日正式发布了,从今天 ... -
增强Liferay的搜索功能
2010-07-07 14:46 3272新加入到了公司的门户 ...
相关推荐
内容如下: Portal介绍 Liferay Portal6安装及简单设置 Liferay IDE的安装使用 Liferay开发模式介绍 Struts Portlet开发示例 使用Struts2开发Portlet
liferay portal 开发指南liferay portal 开发指南liferay portal 开发指南liferay portal 开发指南
LifeRay_Portal_6学习笔记6使用Struts2开发Portlet.
liferay portal比较完整的学习资料,供大家学习
可供参考的liferay开发的portlet示例工程,学习参考的简单示例
里面有四个小型的liferay portal mvc实例,所需要的jar文件大家可以在eclipse里面新建一个portlet项目,再将里面的实例代码拷贝进去即可运行
包含liferay portal开发,帮助,架构,代码,等portlet中文文档 ,PDF格式
liferay Portal 学习书籍,外国人编写的,非常好。
liferay_使用struts2开发portlet
liferay portal 6文档,使用说明
Liferay Portal 二次开发指南,内容比较详细。
我最近由于工作需要在学习PORTAL开发,公司用的是LIFERAY的,因此上网找了些资料,贡献给大家!希望对喜欢LIFERAY PORTAL的开发人员有用!!
liferay 使用struts2 结合 eclipse IDE 进行portlet开发环境的搭建,以及基本开发实例。
pdf格式,本文从Liferay Portal的架构入手,详细讲解Portal的用户策略、内容布局、桌面和品质的要素,引导读者完成Liferay Portal初步的二次开发,在Liferay Portal上定制自己的Portlet。
(英文版)liferay portal 6 企业网络版(Liferay Portal 6 Enterprise Intranets.pdf)
Using Liferay Portal 6.1
liferay portlet 开发的例子介绍
Liferay Portal 内容管理
liferay6中基于struts的开发文档
将后缀改为mht 博文链接:https://p2world.iteye.com/blog/639088