- 博客(29)
- 资源 (12)
- 收藏
- 关注
原创 Liferay7 BPM门户开发之42: Liferay核心JSP定制扩展
Liferay最大的好处是不仅接口强大,利于扩展,就连JSP定制扩展都提供了3种方式。修改核心jsp代码,有3种修改方式:1、暴力修改直接修改(位于portal-web/docroot/html),编译部署,会带来风险,而且不能同步更新。2、全量扩展修改热部署jsp文件(替代原有jsp),这是v7.0下的OSGi方式,实现方式非常优雅。3、CustomJspBag Hook方式实现...
2016-11-30 11:15:00 213
原创 Liferay7 BPM门户开发之41: Expando API入门
Expando 是liferay的一种自定义表格扩展的方式,从5.0就已存在 , 可以在运行时新建表格\字段\行\值.这是一种Service Builder之外的轻量级替代扩展方式,不必像Service Builder那么繁琐,实现的具体技术实际上是列转行,其中ExpandoValue有点像Activiti的act_ru_variable主要有4种接口,分别是表\行\列...
2016-11-29 22:45:00 108
原创 Liferay7 BPM门户开发之40: Form表单的Action到Render的数据传递
在Form提交后的变量,很多情况是要展现在jsp页面中,这时Action到Render的变量传递就非常有用。例如,您在数据库中添加了学生的详细信息。为了实现这一需求,先创建Form表单(学生的细节,如姓名、出生日期等,通过action url来实现)。当用户提交表单时,这些数据(学生信息)会在你执行CRUD操作的action方法添加。添加完成后,需要把一些...
2016-11-28 00:04:00 199
原创 Liferay7 BPM门户开发之39: Form表单提交的ProcessAction处理
在v6.2开始后,需要设置<requires-namespaced-parameters>false</requires-namespaced-parameters> 来避免在jsp中写<portlet:namespace/>的input前缀在v7.0发现,注解方式是不灵的!即 "javax.portlet.requir...
2016-11-27 20:17:00 176
原创 Liferay7 BPM门户开发之38: OSGi模块化Bndtools、Maven、Gradle开发构建入门
前言OSGi是目前动态模块系统的事实上的工业标准,它适用于任何需要模块化、面向服务、面向组件的应用程序。Eclipse如此庞大和复杂的插件体系,就是基于OSGi。Liferay也是基于OSGi。OSGi是模块化设计的一种标准,适用于大中型项目。在一些小型项目中,开发者也可以自己设计私有的classLoader机制来实现插件开发环境,比如openfireOSGi...
2016-11-18 14:03:00 191
原创 Liferay7 BPM门户开发之37: Liferay7下的OSGi Hook集成开发
hook开发是Liferay客制扩展的一种方式,比插件灵活,即可以扩展liferay门户,也能对原有特性进行更改,Liferay有许多内置的服务,比如用hook甚至可以覆盖Liferay服务。可作为系统服务挂钩(Liferay Service Hook),还有其他类型的hook...Liferay6.2 时的hook开发比较有限,而在Liferay7则大为不同,OSGi servic...
2016-11-14 18:36:00 369
原创 Liferay7 BPM门户开发之36: 使用Portlet filters过滤器做切面AOP
使用Portlet filters过滤器做切面AOPPortlet Filters定义于JSR286 Java Portlet Specification 2.0 Portlet Filters是为了在4个生命周期的过程中,提供外部的AOP支持,这非常不显眼,但也很有用,比如可以用在Liferay的Hook开发中。JSR286 Java Portlet Specification 2....
2016-11-14 12:40:00 128
原创 Liferay7 BPM门户开发之35: AssetTag的集成查询
Tag是liferay中的Asset特性,可以用来对信息进行分类,在iferay中的Asset类型为:1、 Web Content(自定义内容)2、 Documents and Media(文档库和媒体文件)3、 Blogs (博客文章)4、 Message Boards 5、 Wiki Page6、 Bookmarks可以根据tagName来对...
2016-11-14 12:35:00 172
原创 Liferay7 BPM门户开发之34: liferay7对外服务类生成(RestService Get Url)
在liferay7中开发不依赖Service Builder的对外服务类,非常简洁,只需要2点注解:在类的前部定义: @ApplicationPath("/PathXXX")方法前定义: @GET @Path("/ActionXXX") @Produces("text/plain")例子:得到注册用户import com.liferay.portal....
2016-11-14 12:34:00 185 4
原创 Liferay7 BPM门户开发之33: Portlet之间通信的3种方式(session、IPC Render Parameter、IPC Event、Cookies)...
文章介绍了5种方式,4种是比较常用的:Portlet sessionIPC Public Render ParametersIPC EventCookies参考地址:https://web.liferay.com/zh/community/wiki/-/wiki/Main/Portlet%E9%97%B4%E7%9A%84%E9%80%9A%E4%BF%A1 方式...
2016-11-13 11:59:00 109
原创 Liferay7 BPM门户开发之32: 实现自定义认证登陆(定制Authentication Hook)
第一步:修改liferay-hook.xml<?xml version="1.0"?><!DOCTYPE hook PUBLIC "-//Liferay//DTD Hook 6.2.0//EN" "http://www.liferay.com/dtd/liferay-hook_6_2_0.dtd"><hook><portal-
2016-11-11 17:43:00 384
原创 Liferay7 BPM门户开发之30: 通用帮助类Validator、ArrayUtil、StringUtil等使用
废话不多说,直接上代码。验证类Validator主要是空验证、数字、格式验证调用的例子:protected void validateEmailFrom(ActionRequest actionRequest){ String emailFromName = getParameter(actionRequest, "emailFromNam...
2016-11-11 13:41:00 120
原创 Liferay7 BPM门户开发之29: 核心kernel.util包下面的通用帮助类ParamUtil、GetterUtil使用...
与其闭门造车,不如直接开动原装、进口、免费的法拉利。 -- 作者说不多说废话,直接上代码。 ParamUtilParamUtil、GetterUtil是Liferay最重要的帮助类ParamUtil用途:获取PortletRequest的参数值,并作类型转换和判空处理(内部机制是通过GetterUtil)GetterUtil用途:对输入做类型转换、判...
2016-11-11 13:29:00 246
原创 Liferay7 BPM门户开发之28: Portlet文件上传,及实体类同步更新上传
抓住核心 。Liferay文件上传的核心就是使用UploadPortletRequest类继承关系java.lang.Object extended byjavax.servlet.ServletRequestWrapper extended byjavax.servlet.http.HttpServletRequestWrapper ...
2016-11-11 13:00:00 152 1
原创 Liferay7 BPM门户开发之27: MVC Portlet插件工程开发
官网上的教材说实话实在精简不清晰.https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/creating-an-mvc-portlet版本7的Action机制换了:https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/mvc-action-...
2016-11-09 16:28:00 127 2
原创 Liferay7 BPM门户开发之26: 集成Activiti到Liferay7
开发顺序:实战任务1,开发BPM管理后台(用于在Liferay管理中心管理Activiti模型上传)一个熟悉Portlet操作的项目,为开发打好基础。http://www.cnblogs.com/starcrm/p/6184721.html 实战任务2,开发BPM管理后台:流程列表清单Portlet万里长征第一步,非常关键。http://www.cnblogs.com/...
2016-11-09 16:28:00 163
原创 Liferay7 BPM门户开发之25: Liferay7应用程序配置(APPLICATION CONFIGURATION)
首先有几个概念需要明确。1、第一个概念是这里的应用程序配置不是写XML之类的配置文件,是类似字典的类型化配置这意味着应用程序配置不只是一个字符串键值对的列表。值还可以有类型,如整数列表,字符串列表,一个网址,甚至可以使用自己的自定义类型。2、第二个概念是模块性。在Liferay 7 中,应用程序是模块化的,组件只是一个有@组件注释的类,通常是一组属性提供元数据。3、第三个概念是在不同...
2016-11-09 16:07:00 172
原创 Liferay7 BPM门户开发之24: Liferay7应用程序安全
整理中......Resources, Roles, and PermissionsPortal Access Control List (PACL) Custom SSO Providers Authentication Pipelines Sanitizers Service Access Policies Authentication Verifiers...
2016-11-09 16:05:00 87
原创 Liferay7 BPM门户开发之23: 了解内置工作流(Kaleo Workflow)
Liferay内置的工作流是企业版的功能,虽然简单粗糙,但依然不支持社区版。既然要用更强大的Activiti来替代它,那就非常有必要学习一下内置工作流的一些思想,以便借鉴。它的特点:实体的工作流操作可以通过service layer进行集成;需要添加4个额外的字段来跟踪流程状态;通过Service Builder来建立字段,然后更新service layer;视图层UI可...
2016-11-09 16:04:00 479 1
原创 Liferay7 BPM门户开发之22: Liferay7模型监听器(Model Listeners)
Model Listeners实现ModelListener接口,用于持久化时的AOP处理一些使用场景:Audit Listener: 在一个独立而分离的数据库,做信息更新的审计;Cache Clearing Listener: 缓存清除时做的额外定制处理;Validation Listener: 实体的验证Entity Update Listener...
2016-11-09 16:01:00 110
原创 Liferay7 BPM门户开发之21: 理解消息总线(Message Bus)体系
Liferay Message Bus提供了松耦合的消息发送接收机制(生产和消费的设计模式),用于本地服务,不支持远程服务,支持集群。主要用途:两个或多个插件之间的通讯。在事件中发送搜索索引,比如传递工作流的实例索引。发送订阅邮件或系统消息,比如在工作流中的待办到达时,给用户发送提醒消息。定时任务消息发送,比如在工作流中的定时任务启动时,给用户发送提醒...
2016-11-09 15:23:00 215
原创 Liferay7 BPM门户开发之20: 理解Asset Framework
Asset框架用于将您开发的门户内容添加Liferay的核心系统功能。打个比方,你开发了一个事件TodoList管理的插件,在列表显示的时候,你可以集成Asset框架,让你的自定义内容支持Tag标签、分类、评论、星标等功能。它可以关联任意的门户内容,文本、Int、Image、documents、blog entries, bookmarks,或者任何您自己定义的内...
2016-11-09 12:44:00 125
原创 Liferay7 BPM门户开发之19: 理解Service Builder体系
Service Builder是Liferay为业务开发而设计的模型驱动(model-driven)平台工具,提供一系列的实体类、数据持久化、服务相关的代码自动生成服务。支持Hibernate and Spring集成,缓存处理,动态查询等特性。令人惊讶的是,Liferay所有的持久化代码、Servie接口代码都是由Service Builder自动生成的,可见其...
2016-11-08 15:53:00 138
原创 Liferay7 BPM门户开发之18: 理解ServiceContext
==
2016-11-08 15:51:00 160
原创 Liferay7 BPM门户开发之17: Portlet 生命周期
Portlet 生命周期init() =〉 render() =〉 processAction() =〉 processEvent() =〉 serveResource() =〉destroy()init() 在Liferay容器部署portlet时,启动portlet实例化 init有两个写法: public void init() throws Po...
2016-11-04 12:10:00 239
原创 Liferay7 BPM门户开发之16: Liferay中用户\站点\组织架构\角色\用户组以及关联关系...
用户 、 站点 、 组织架构 、 角色 、 用户组分别是:Users、 Site、 Organization、 Role、 UserGroupsUsers用户是Liferay portal中的关键实体,分别和站点 / 组织架构 / 用户组相互关联;用户是组织架构的一部分;一个用户可以通过访问权限访问多个站点;用户包含的权限有3种作用域: Site Specific Ro...
2016-11-02 14:52:00 173
原创 Liferay7 BPM门户开发之15: Liferay开发体系简介
Liferay SDK 开发体系主要分6种:PortletHookThemeLayout TemplatesWeb ModulesExtPortlet :类似于servlet的web组件,编译后是war包,是页面的组成元素,可以把它理解为一个web APP详细介绍:https://web.liferay.com/zh/products/wha...
2016-11-02 12:22:00 157 1
Liferay7门户集成Activiti BPM用户组同步
2016-12-19
Liferay7门户集成Activiti BPM展示流程列表功能
2016-12-15
Liferay开发持久化层和服务层演示Demo代码
2016-02-03
Java Web Project开发WebSocket服务端/客户端
2016-01-15
C#使用七牛云存储上传下载文件
2016-01-14
ASP.NET MVC 在线录音录像(音视频录制并上传)
2016-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人