一个典型的Portlet应该有如下的结构:

源代码文件:

java源代码存放在<项目名>/docroot/WEB-INF/src 目录下

配置文件:

配置文件都在<项目名>/docroot/WEB-INF目录下,典型的有4个配置文件

portlet.xml是JSR-286相关的一些配置,它作为portlet的部署描述文件

剩余3个配置文件都是和Liferay相关的:

liferay-display.xml 文件显示portlet在Add菜单的哪个分类下

liferay-portlet.xml 文件显示Liferay对JSR-286做了哪些增强,比如配置某个portlet是否是实例化的,如下面代码第6行所示:

  1. <liferay-portlet-app>
  2. <portlet>
  3. <portlet-name>clusternodeinfoportlet</portlet-name>
  4. <icon>/icon.png</icon>
  5. <instanceable>false</instanceable>
  6. <header-portlet-css>/css/main.css</header-portlet-css>
  7. <footer-portlet-javascript>/js/main.js</footer-portlet-javascript>
  8. <css-class-wrapper>clusternodeinfoportlet-portlet</css-class-wrapper>
  9. </portlet>
  10. <role-mapper>
  11. <role-name>administrator</role-name>
  12. <role-link>Administrator</role-link>
  13. </role-mapper>
  14. <role-mapper>
  15. <role-name>guest</role-name>
  16. <role-link>Guest</role-link>
  17. </role-mapper>
  18. <role-mapper>
  19. <role-name>power-user</role-name>
  20. <role-link>Power User</role-link>
  21. </role-mapper>
  22. <role-mapper>
  23. <role-name>user</role-name>
  24. <role-link>User</role-link>
  25. </role-mapper>
  26. </liferay-portlet-app>

liferay-plugin-package.properties 文件一般用于配置这个portlet所依赖jar包,然后这个portlet会被打包成war.

资源文件:

客户端的资源文件分别在<项目名>/docroot/目录下的js,css,html 目录下。需要注意的是,所有的html/jsp文件都不应该有全局的头比如<html><head>,所有的js,css文件都应该在指定名字空间中。

比如我们写的一段jsp页帧:

  1. <%--
  2. /**
  3. * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
  4. *
  5. * This library is free software; you can redistribute it and/or modify it under
  6. * the terms of the GNU Lesser General Public License as published by the Free
  7. * Software Foundation; either version 2.1 of the License, or (at your option)
  8. * any later version.
  9. *
  10. * This library is distributed in the hope that it will be useful, but WITHOUT
  11. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  12. * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
  13. * details.
  14. */
  15. --%>
  16. <%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
  17. <portlet:defineObjects />
  18. <h4>
  19. This is the <b>ClusterNodeInfoPortlet</b> portlet in View mode.
  20. It will display the node information in the cluster.<br>
  21. </h4>
  22. <br>
  23. <jsp:useBean id="serverName" class="java.lang.String" scope="request" />
  24. <jsp:useBean id="serverPort" class="java.lang.String" scope="request"/>
  25. <jsp:useBean id="sessionId"  class="java.lang.String" scope="request"/>
  26. <jsp:useBean id="portletSessionId" class="java.lang.String" scope="request"/>
  27. <jsp:useBean id="portalInfo" class="java.lang.String" scope="request"/>
  28. <b><font color="red">Cluster Node Information:</font></b><br>
  29. <b>Current Server Name:</b> <%=serverName%> <br>
  30. <b>Current Server Port:</b> <%=serverPort%> <br>
  31. <b>Current Session Id: </b> <%=sessionId %> <br>
  32. <b>Current Portlet Session Id:<%=portletSessionId %></b>
  33. <b>Current Portal Info:<%=portalInfo%></b>
  34. <!--
  35. get the original http session
  36. -->
  37. <b>Current Server Session Id:<%=session.getId() %></b>
  38. <hr>

可以看出,这段页面是没有全局的标记<html><head>的

本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/881475,如需转载请自行联系原作者

Liferay Portlet 结构分解相关推荐

  1. Page9:结构分解以及系统内部稳定和BIBO稳定概念及其性质[Linear System Theory]

    内容包含系统能控性结构分解.系统能观测性结构分解以及系统结构规范分解原理,线性系统的内部稳定.BIBO稳定概念及其性质 转载于:https://www.cnblogs.com/ERFishing/p/ ...

  2. liferay+portlet+开发实例

    Liferay Portlet开发简单说明 我们看到无论是portal和ext工程,目录都很繁杂,其实我们只要关注3个目录就够了. portal里面的ext-impl\src,ext-service\ ...

  3. 现代控制理论6——能控、能观及其对偶原理、线性变换、结构分解

    注:本文是在MOOC平台上学习西北工业大学<现代控制理论基础>(郭建国.赵斌.郭宗易)的课程进行随笔记录与整理 一.凯莱-哈密尔顿定理 任何一个n阶矩阵,其n到0次幂都是线性相关的,其线性 ...

  4. Sage X3 ERP-PJM结构分解

    Sage X3 ERP-PJM结构分解 项目管理的结构分解 在项目管理中,如何定义项目本身是关键,WBS(Work Breakdown Structure 项目任务分解).PBS(Product Br ...

  5. Page8:对偶原理以及结构分解[Linear System Theory]

    内容包含状态转移矩阵的对偶性.方块图的对偶性.时序的对偶性以及对偶性原理,能控能观标准型及其结构分解 转载于:https://www.cnblogs.com/ERFishing/p/10314700. ...

  6. 项目范围定义与创建工作结构分解

    范围定义 输入 工具与技术 输出 1.组织过程资产 2.项目章程 3.范围说明书(初步) 4.项目范围管理计划 5.批准的变更申请 1.产品分析 2.备选方案识别 3.专家判断 4.项目干系人分析 1 ...

  7. liferay portlet二次开发多个ajax数据传递

    最近需要使用liferay,在进行portlet开发时需要使用到多个ajax数据的传递,现将代码粘帖如下: 也欢迎大家加入一起讨论群:427070805 portlet view.jsp代码如下: & ...

  8. Sage X3 PJM结构分解示例详解

    在<详解项目管理中任务.成本.产品三者的关系>一文中,对项目管理从任务.成本.产品的角度结构进行了分解,重点阐述了三者的关系. 本文以一个塔式起重机为例,直观的展示三者的关系. 塔式起重机 ...

  9. Sage X3 PJM结构分解示例详解(项目管理)

    在<详解项目管理中任务.成本.产品三者的关系>一文中,对项目管理从任务.成本.产品的角度结构进行了分解,重点阐述了三者的关系. 本文以一个塔式起重机为例,直观的展示三者的关系. 塔式起重机 ...

最新文章

  1. 生产型机器学习已经没那么困难了?
  2. 数据中心支持物联网的5种方式
  3. python 面向对象(类)--学习笔记
  4. 这个浮躁的年代,时刻提醒自己
  5. Android类库介绍
  6. 局域网网络风暴检测工具_【思唯网络学院】从原理到配置,最全的VLAN说明就在这了!...
  7. 口红机源码运营版对接CC支付源码
  8. core dump python_python 源码笔记 ---- freeblock
  9. 数据中心的重要服务器如何保护?
  10. if函数判断单元格颜色_IF条件函数10大用法完整版,全会是高手,配合SUMIF,VLOOKUP更逆天...
  11. mysql正则防注入_防止sql注入的方法
  12. 税控盘版开票助手开发
  13. 几何画板椭圆九种画法_椭圆的画法几何画板的动画演示
  14. Unity3D for VR 学习(2): 暴风魔镜框架探索
  15. 【新手必看】全网最全平面设计理论基础知识,平面设计重要理论
  16. 输入年份 计算 生肖 C语言实现
  17. excel高级筛选怎么用_Excel工作表中如何使用高级筛功能来实现多条件筛选
  18. UVa 11223 - O: dah dah dah!
  19. Ruff 公开课回顾——物联网应用已经落地,区块链技术紧随其后
  20. 【PAT甲级】1131 Subway Map

热门文章

  1. ELK快速搭建一个集中化日志平台
  2. 多线程解决同步问题浅析
  3. 谷歌recaptcha验证码java解决方案
  4. ng-bind-html在ng-repeat中问题的解决办法
  5. 从Ruby中删除数组中的重复元素
  6. 在Linux中使用cURL进行HTTP POST和GET [复制]
  7. activiti并行网关
  8. Maven的传递依赖
  9. 用户注册加密操作,实现加密工具PasswordHelper
  10. Redis数据库,Jedis接口分类(使用)说明