Portal的概念风风火火地炒了好几年,确始终没有大红大紫。眼看着Ajax和Web 2.0朝自己杀来,靠Portal产品过日子的厂商们也终于按耐不住了。老牌开源Portal产品Liferay在其4.0版本中就加入了Ajax的东东,其Portlet的移动、添加和删除就是基于Ajax的。但是这远远是不够的,如果不能在产品级别更好的支持Portlet内部的Ajax,那么传统的Portal很可能会穷途末路,因为完全基于Ajax的PortalFramework已经出现了,如
Light。
然而无论Ajax和Web 2.0发展成什么样,有一点它是无法取代Portal的,就是Web系统的组件化乃至服务化。Portal最有价值的地方也就是提出了把Web系统当作组件或服务来集成,这样,无论是遗留下来的Web系统,还是新开发的Web系统,都可以很简单地集成在一块儿,并且,把某个Web系统替换掉也是很简单的。也许不久的将来,Ajax和Web 2.0的阵营中也会出现把Web系统当作组件或服务的技术,但是这其实就是Portal的概念,换汤不换药。
前阵子有机会在Liferay Portal下开发一些Ajax的Portlet,其中用到了DWR,有些tricky的地方,写在这里方便各位,也方便自己。
在Portlet的jsp中引用DWR的js不能简单地直接使用相对路径,比如,如果DWR的js相对jsp放在/dwr目录中的话,如下的引用方式是不对的:
<!----><script type="text/javascript" src="/dwr/engine.js"></script>
<script type="text/javascript" src="/dwr/util.js"></script>
<script type="text/javascript" src="/dwr/interface/YourClass.js"></script>
因为当你把Portlet部署到Liferay的时候,这个相对路径的意义就变了。为了正确引用js,我们必须使用如下的声明方式:
<!----><script type="text/javascript"
src='<%= renderResponse.encodeURL(renderRequest.getContextPath() + "/dwr/engine.js") %>'>
</script>
<script type="text/javascript"
src='<%= renderResponse.encodeURL(renderRequest.getContextPath() + "/dwr/util.js") %>'>
</script>
<script type="text/javascript"
src='<%= renderResponse.encodeURL(renderRequest.getContextPath() +
"/dwr/interface/RssReader.js") %>'>
</script>
其中的renderRequest和renderResponse是Liferay Portal添加到jsp中的隐含变量,负责对Portlet进行渲染。renderRequest.getContextPath()就是当前jsp的路径,加上js相对于jsp的路径,最后要用renderResponse.encodeURL()方法解码一下才能得到正确的路径。
其他方面,DWR的使用方法就和在一般的jsp中的使用方法一样了。从这里也可以看出,不光是使用DWR,所有对js及其他资源的引用都要用这种方法。
分享到:
相关推荐
在维护方面,Liferay提供了详细的文档和社区支持,帮助用户解决在使用过程中遇到的问题。 #### 五、案例研究与最佳实践 Liferay Portal 6在全球范围内有众多成功案例,涉及金融、教育、医疗等多个行业。例如,某...
Portlet是Liferay Portal中的核心组件,是可重用的Web UI模块。开发者可以通过实现JSR 286(Portlet 2.0)规范来创建portlet。文档中将详细介绍portlet生命周期、渲染、事件处理以及portlet与portlet之间的通信。 ...
在Liferay Portal中,Portlet是展示内容的基本单元,它可以通过MVC模式来实现业务逻辑、数据处理和视图呈现的分离。MVC架构允许开发者将程序分为三个主要部分:模型(Model)负责数据处理和业务逻辑,视图(View)...
Liferay Portal能够提供这样的平台,并且是基于Java语言构建的,这一点在标题中得到了强调。 接着从描述中可以看出,这本书籍适合读者群体很可能是对Liferay Portal有所了解或需要深入了解Liferay Portal的开发者和...
在Liferay Portal中,文档管理主要通过【Document Library】Portlet实现。用户可以方便地上传文档,如在文件夹内点击【Add Document】,选择本地文件上传。值得注意的是,上传的文档大小通常有3000KB的限制。文档...
本文档适用于希望了解如何在 Liferay Portal 中开发和部署 Portlet 的开发者。通过遵循 JSR-168 规范,可以确保 Portlet 能够在不同的门户平台上运行。同时,本文档还介绍了推荐使用的开发工具、开发环境的搭建方法...
3. 社交系统开发:社交功能是现代企业门户不可或缺的一部分,Liferay通过各种社交Portlets,允许用户在其门户中集成社交网络元素,例如论坛、博客、好友系统等。 4. 技术集成:Liferay支持与多种技术的集成,这意味...
### Liferay Portal 二次开发指南 ...总之,Liferay Portal的二次开发不仅涉及技术层面的编码和配置,还需要深入理解其架构和使用模式,才能充分利用其强大功能,构建出既高效又个性化的门户应用。
“工具”标签可能涵盖了开发过程中使用的各种辅助软件,比如IDE(如Eclipse、IntelliJ IDEA)、版本控制系统(如Git)、构建工具(如Maven)以及测试框架。在Liferay开发中,使用这些工具能帮助你更高效地工作,例如...
Using Liferay Portal 6.1
- **Portlet**:是portal中的可重用组件,可以是动态的Web应用程序,如新闻显示、天气预报等,它们在portal页面上并排显示,提供交互式的用户体验。 - **Portlet与Servlet的关系**:Portlet与Servlet类似,都是...
在Liferay Portal 中,可以通过不同的portlet来修改页面的布局和Page Settings 等。例如: * 对社区的页面进行修改:选择【Communities】portlet,选择某个社区,点击【Actions】,选择【Configure Pages】,即可...
- **目标读者**:本指南旨在帮助想要在Liferay Portal上开发Portlets的新手开发者。它假设读者已经具备一定的Java编程基础,并了解基本的Web应用开发概念。 - **适用版本**:文档基于Liferay 4.3版本编写,部分特性...
描述中的内容与标题相同,表明这个资源是专门针对Liferay Portal 6.1.1 CE GA2的SQL操作,可能包含安装、升级、数据迁移或性能调整所需的SQL语句。 标签 "liferay" 指出这是Liferay Portal相关的,"oracle" 暗示...
1. **创建Eclipse项目**:在Eclipse中新建一个名为`liferayPortal`的项目,并设置源文件夹为`src`,路径应为`liferay/WEB-INF/classes`。 2. **部署Tomcat**:解压`liferay-portal-tomcat-jdk5-4.0.0.zip`文件,将...
Liferay Portal Liferay IDE
《LifeRay Portal 6.0.6 学习手册》是一份针对LifeRay Portal初学者的详细教程,旨在帮助读者深入了解和掌握LifeRay Portal的使用和开发。下面将对其中的关键知识点进行深入探讨。 1. **LifeRay Portal初体验** ...
第二部分:Liferay Portal 的使用 Liferay Portal 安装 Liferay Portal 的安装包括下载、解压和配置三个步骤。下载 Liferay Portal 的安装包,解压到指定的目录,配置数据库和服务器信息。 Liferay Portal 的用户...