Liferay portlet首选项(preferences)设置、存储处理
最近使用Liferay做项目集成,由于团队人员在之前对Liferay这东西都没有充分的了解,用起来着实费了不少力气,最近为了为定制好的portlet添加初始化信息,翻阅了一些文章,下面是了解到的关于初始化信息(首选项)的配置处理机制.在JSR168规范中,允许使用preferences来存储portlet的一些初始信息,preferences的内容在portlet.xml来设置.而在Liferay中,对preferences加入了数据库持久化功能,并且可针对company,layout,portlet instance和user的不同组合来定制.
首先来看看在jsp页面上如何访问preferences.
/html/portal/render_portlet.jsp - Portlet输出页面.
Portlet portlet = (Portlet)request.getAttribute(WebKeys.RENDER_PORTLET); CachePortlet cachePortlet = PortletInstanceFactory.create(portlet, application);
读取preferences.
PortletPreferences portletPrefs = PortletPreferencesLocalServiceUtil.getPreferences( company.getCompanyId(), PortletPreferencesFactory.getPortletPreferencesPK(request, portletId));
初识Apache Velocity(Java模板引擎)
最近项目转用Liferay框架做支撑,在了解Liferay的时候发现Liferay的Theme中使用了不少的*.vm文件,一时不解,就回来上网查了下,本来还以为是Liferay自己封装的模板引擎,简单的了解后才发现这个文件原来是基于Apache Velocity的 Java模板引擎,做为Java开发人员,相信不少人看过或了解过Velocity,名称字面翻译为:速度、速率、迅速,用在Web开发里,但是用过的人可能不多,大都基本知道和在使用Struts,到底Velocity和Struts是如何联系,怎么看待Velocity呢?让我们来尝试一 下,了解Velocity的概念,通过在这里的介绍,强调在技术选择上的问题,让大家在选择项目开发时,可以考虑Velocity,另外也让大家了解它的 思想,毕竟它提供了一个很好的思维方式,给大家换换筋骨,换一种思考的方式。
本文基于你对Java开发有一定基础,知道MVC,Struts等开发模式。
Velocity是一种Java模版引擎技术,该项目由Apache提出,由另外一种引擎技 术Webmacro引深而来。那什么是官方的Velocity定义呢?Apache对它的定义是:一种基于Java的模板引擎,但允许任何人使用简单而强 大的模板语言来引用定义在Java代码中的对象。目前最新的版本是1.7,可以在http://velocity.apache.org/查找更多信息。 查看更多...
Ajax应用事件处理及浏览器内存泄漏实践
事件处理是 Ajax 应用中的重要组成部分,也是应用动态变化的源动力。本文详细介绍了浏览器中的事件处理相关的内容,包括注册事件监听器、事件发生之后的传播机制、编写事件监听器等,还介绍了 Dojo 对事件处理提供的支持。最后介绍了与浏览器内存泄露和性能相关的最佳实践。
浏览器中的事件是 Ajax 应用动态变化的源动力。用户通过输入设备(主要是键盘和鼠标)与应用进行互动。对于用户不同的动作,如点击鼠标左键、右键、或是按下键盘上的回车键,浏览器会产生与之对应的事件。这些事件按照一定的规则在当前文档树中传播。应用可以根据自己的需要,对特定的事件进行处理,以响应用户的动作。这种事件驱动的方式,不仅在 Web 应用中被使用,在桌面应用中也广泛流行。本文详细介绍了浏览器中事件处理的各个方面,包括事件监听器的注册、事件的传播、事件处理和其它高级话题。本文还介绍了如何使用 Dojo 提供的 dojo.connect()。本文中使用的 Dojo 版本是 1.4。下面首先介绍如何注册事件监听器。
注册事件监听器
注册事件监听器的目的是在事件发生的时候添加相应的处理逻辑。浏览器中的事件处理采用经典的观察者(Observer)设计模式。对于可能产生的各种事件,Ajax 应用通过脚本在节点上关注自己感兴趣的事件,并添加相应的处理逻辑。当相应的事件发生并传播到监听器注册的节点时,处理逻辑会被调用。 查看更多...
了解SQLServer中varchar(max)、nvarchar(max)和varbinary(max)
在Microsoft SQLServer2005及以上的版本中,对于varchar(n)、nvarchar(n)和varbinary(n)有了max的扩展。可以使用如:varchar(max)、nvarchar(max)和varbinary(max)的大值数据类型来存储最多2^30-1个字节的数据。
这几个数据类型在行为上和较小的数据类型 varchar、nvarchar 和 varbinary 相同。
微软的说法是用这个数据类型来代替之前的text、ntext 和 image 数据类型,它们之间的对应关系为:
varchar(max)-------text;
nvarchar(max)-----ntext;
varbinary(max)----image.
有了大值数据类型之后,在对大值数据操作的时候要比以前灵活的多了。比如:之前text是不能用‘like’的,有了varchar(max)之后就没有这些问题了,因为varchar(max)在行为上和varchar(n)上相同,所以,可以用在varchar的都可以用在varchar(max)上。 查看更多...
SQL Server 2005及以上版本中XML操作函数详解
一直以来,使用sqlserver都比较少,之前读书时学过sqlserver2000、sqlserver2005,却一直没接触到类似于sqlserver2005中引入新的字段类型XML、varchar(max)、nvarchar(max)、varbinary(max)之类的知识。直到今天,用到大字节的数据存储,才发现有这个改进,确切点说,是sqlserver2005中废弃了text、ntext 和image类型采用新的max标记来扩展原有字段的存储能力,如varchar(max)、nvarchar(max)、varbinary(max),关于这些在后面单独描述,本篇介绍一下sqlserver2005以后新增的一个类型——XML。
我们采用T-Sql操作Xml数据。使用sqlserver2005引入的XML数据类型。用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列;此外,还允许带有变量和参数。为了更好地支持 XML 模型特征(例如文档顺序和递归结构),XML 值以内部格式存储为大型二进制对象 (BLOB)。
用户将一个XML数据存入数据库的时候,可以使用这个XML的字符串,SQL Server会自动的将这个字符串转化为XML类型,并存储到数据库中。 查看更多...
dojo实现的两种拖拽方式(拖动、拖放)
Web2.0的时代,网页中常常会用到拖拽的效果,这里了解下使用dojo来实现拖拽。在开始尝试了解dojo拖拽效果以前,必须明确拖拽具有两种截然不同的表现效果。
第一种表现效果是图标被拖拽到哪里,其就会被直接放到哪里,这个拖拽效果是图标完全紧跟拖拽的动作,与每一个拖拽动作的运动轨迹完全契合,这种效果被称为“ 拖动”。第二种表现效果是当图标被拖拽到一个地方,松开鼠标的时候,图标会以当前位置为基础而以其它图标为参照系进行位置的自动调整。这种效果被称为“拖放”。
dojo的拖动
“拖动”与“拖放”相比较,原理更加容易理解,使用更加简单。而且更加贴近于人们直观印象中的“拖拽”效果。
最简单的拖动实例
要在 dojo 的支持下,实现拖动的效果所需要的只是使用 dojo 所提供的 dojo 标签属性标注出希望实现拖动效果的实体。 查看更多...