ImageVerifierCode 换一换
格式:DOCX , 页数:53 ,大小:1.73MB ,
资源ID:21923002      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21923002.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(NCV6开发平台技术红皮书文档格式.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

NCV6开发平台技术红皮书文档格式.docx

1、5.6.1 创建Portlet事件 285.6.2 触发Portlet事件 285.6.3 响应Portlet事件 295.6.4 Portlet事件输出 295.7 Portlet参数 305.8 Portlet参数编辑器 305.9 Portlet发布 315.10.1 发布portlet 315.10.2 更新发布的portlet 32第六章 主题开发 346.1 概述 356.2 页面样式 356.3 布局样式 356.4 Portlet样式 366.5 皮肤 37第七章 门户高级功能 387.1 登录前后处理,指定登录后页面 397.2 登录链 397.3 CA登录 417.4 域认

2、证 427.5 第三方登录 427.6 门户扩展点 437.7 门户设置 457.8 门户FreeMarker扩展 467.9 门户模块配置 477.10 门户统一身份认证 49第一章 Portal简介UAP Portal是基于JSR286规范而实现的一套J2EE技术体系架构的Portal。它构建于UAP平台之上,提供了灵活而丰富的个性化和管理定制功能。UAP Portal允许多种安全认证方式和自选第三方系统用户来源,采取了基于角色访问控制(RBAC)的权限模型。并提供了完善和通用的第三方系统集成框架和单点登录框架,UAPPortal发版默认集成NC、IUFO、BO、自定义查询报表应用,实施S

3、SO比商业Portal简单易用。它提供的Portal管理功能,允许管理员在运行态对Portal进行定制,而无需重启甚至编码。同时,内建的换肤机制使得实现自定义皮肤非常简单。UAP Portal提供了引入了一套开发工具,,使得Portal开发非常简单。Portal页面元素截图介绍如下:上图即是门户的一个布局页面,页面中红色方框区域就是组成该布局的各个portlet,每个portlet可以自由定制自己的皮肤、样式和内容。蓝色框区域是其他布局页面。第二章 Portal架构图第三章 预制Portlet本章内容概要: 框架Portlet TriggerIframePortlet与MonitorIfram

4、ePortlet FreeMarkerPortlet 任务Portlet 菜单Portlet3.1 框架Portlet框架Portlet是一通用简单集成Portlet,可用于管理员为所有用户定制内容。管理员可定制此Portlet完成对一现存站点的引入,可以定义任意数量。比如:将常用站点 http:/ufpark/PortalDefault.aspx 引入Portal的一个页签中,只需要做下面几步:1)系统管理应用平台管理门户配置布局管理中选择新建系统布局,选择框架Portlet并拖入,点击保存。示意图如下:2)在布局管理中刷新并展开刚创建的布局,找到刚刚加入的框架portlet,设置其链接地址

5、属性,指明url地址。对于一个布局中只有一个框架portlet的情况,设置高度为0,这样IFramePortlet的高度会自动调整来适应页面的高度,设置完成后保存。3)需浏览此布局的用户注销重新登陆,即可看到此布局。该Portlet可以配置的个性化信息如下:3.1.1 if_height说明设置ifreame的高度可选值0: 适应页面大小,撑满页面-1: 适应内容高度其它:指定像素的高度举例nameif_height -1read-onlyfalse/preference3.1.2 if_src指定ifreame 内容的url取值方式方式1:从公共参数里取(如Url传参的形式);方式2:从属性

6、里取;注:公共参数优先级较高if_src链接地址!CDATA/portal/pages/view.jsp使用Url传参的形式, 举例截图如下:3.1.3 if_width指定iframe 的宽度百分比:如100%if_width100%开发过程:在Portlet上点击右键,从模板新建Portlet,选择IframePortlet,输入id,名称及嵌入的URL即可。在编辑器右边属性栏中可修改portlet对应的类、描述等信息。在下方模型视图中配置此portlet的具体属性。3.2 TriggerIframePortlet与MonitorIframePortletTriggerIframePort

7、let是可以触发switchIframeContentEvent事件的框架Portlet,它继承自框架Portlet。该portlet会触发switchIframeContentEvent事件,监听switchIframeContentEvent的portlet会响应该事件。常见的监听Portlet有MonitorIFramePortlet及其子类。使用举例:通过该portlet可以设置响应switchIframeContentEvent事件的url。示例代码如下:document.getContainer().doAction(url)MonitorIframePortlet是监听switc

8、hIframeContentEvent事件的IframePortlet, 常与TriggerIframePortlet共同使用。当是自定义触发的Portlet时应将switchIframeContentEvent加入support-publish-event,不建议在一个Page中引用两个MonitorIframePortlet。3.3 FreeMarkerPortlet套用FreeMarker模板的Portlet,该portlet主要用于解析FTL文件路径并把ftl文件内容渲染成Html。3.3.1 继承Portlet(1)创建一个类继承自FreeMarkerPortlet,代码示例如:(2

9、)在该类所在包(nc.test)下创建一个同名的ftl文件FreeMarkerPortlet.ftl3.3.2 编辑Portlet(1)在Portlets节点上点击鼠标右键,可新建portlet分类或直接新建portlet。(2)输入Portlet的id及name,点击OK按钮。新建并打开portlet编辑器。(3)在编辑器右边属性栏中可修改portlet对应的类设置为刚才新建的类nc.test. FreeMarkerPortlet即可。3.4 任务Portlet任务portlet主要包括任务列表的查询、单据类型、任务处理的URL、显示字段的获取、和指令的执行。3.4.1 查询任务列表查询任务

10、列表:/* 查询任务列表.*/WfmTaskVO qryTaskList(TaskQryParam param, PaginationInfo pinfo);参数说明:param 任务查询参数,包括状态、系统、单据类型、关键字、当前用户等。Pinfo:分页信息返回:任务列表3.4.2 获取单据类型获得单据类型:* 获得单据类型WfmFlwTypeVO getBillTypes();3.4.3 获取任务处理URL获得任务处理的URL:* 获得任务处理URLTaskProcessUI getTaskProcessUrl(String pk_task);pk_task 任务的主键任务UI界面3.4.

11、4 批量任务更新批量任务更新:* 批量任务执行String doMutiTaskProcess(String pk_task);通过多个任务的id进行多个任务更新操作。3.4.5 显示获取字段显示字段的获取:* 获取显示的字段Map getVisableColumn(String billtype);通过单据类型查询需要显示的字段。3.4.6 执行命令执行命令:* 执行命令void doCmd(String cmd, String pk);根据不同的指令走相应的url,如根据是“便签”或是“催办”,分别执行“/portal/pt/task/scratchpad”和“/portal/app/mo

12、ckapp/urgencyView”的链接。3.5 菜单Portlet3.5.1 我的功能Portlet该portlet主要功能是显示菜单组 ,分为绑定菜单和动态集成菜单。3.5.1.1 绑定菜单绑定菜单即为布局绑定一个菜单,有“系统管理”权限的用户登录,在“门户配置”的“布局管理”模块,选择一个布局,点击“高级设置”即可打开布局菜单绑定页面,选择一个“绑定连接组”即可完成菜单绑定,示意图如下:3.5.1.2 动态集成菜单动态集成菜单主要是通过虚菜单接口在页面的绑定,具体实现类去完成菜单的动态的生成。如NC系统的消息通过虚菜单的实现进行动态抓取,并在我的功能区进行显示。虚菜单接口IVirtua

13、lMenuProvider说明如下:/获取菜单项List getMenuItems();/消息状态数目Integer getStat();3.5.2 浮动菜单浮动菜单Portlet主要是显示界面上Portal页面绑定的菜单。开发方式:(1)系统管理 应用平台管理 布局管理中打开布局设计器。拖放一个浮动菜单Portlet.选中该Portlet.设置样式为浮动。(2)选中步骤1创建的布局.点高级设置.选择一个绑定菜单。3.5.3 页签Portlet页签Portlet是门户提供的一种菜单展现样式.以Tab页的形式来展示菜单的内容。布局管理中打开布局设计器.拖放一个页签Portlet。(2)展开步骤1

14、创建的布局,选择页签Portlet,点高级设置.选择一个菜单。页签Portlet可以设置高度宽度。3.5.4 OutLook导航PortletOutlook导航Portlet是门户提供的一种菜单展现样式。以OutLook导航的形式来展示菜单的内容。拖放一个OutLook导航Portlet。(2)拖入一个布局,选中;点击样式下拉框,选择”框架布局”并保存。(3)展开步骤1创建的布局,选择页签Portlet,点高级设置.选择一个菜单;也可以在此设置OutLook导航Portlet的高度与宽度。注意:为了实现在页签内打开OutLook导航Portlet选中的菜单项,需要在当前页面中的一个布局样式设置

15、为框架布局。该布局与正常布局一样,可以容纳Portlet。但是在收到OutLook的请求时会将布局内容切换到菜单项界面。第四章 Portal界面 概念 创建Portal界面 布局设计 布局分配 多级布局 绑定菜单4.1 概念UAP Portal 使用Pml界面组件结构标记语言对页面进行描述。Pml 包括布局(Layout)对象及Portlet对象。布局可嵌套布局和Portlet,从而组成相对复杂的界面。一个页面中的portlet不能重复。4.2 创建Portal界面在“Portal页面”节点上点击鼠标右键新建page页面。输入id 及 tilte,点击ok按钮,新建Page完成,并打开page

16、编辑器。在page编辑器中进行page布局配置。4.3 布局设计1 2 3 4.3.1 布局排序布局排序是指在布局列表中“是否主页”的那一列,是主页的分组会按照优先级排序,不是主页的分组也会按照优先级进行排序。4.3.2 布局Icon4.3.2.1 设置布局Icon布局Icon是为已创建的布局设置绑定的图标,示意图如下:4.3.2.2 获取图标通过步骤1设定好布局的菜单和图标后,可以通过导航栏菜单项获取其图标。示意代码如下:获取页签Page myPages = PortalPageDataWrap.getUserPages();PageMenu menu = PortalPageDataWra

17、p.getUserMenu(myPages);String, Object root = new HashMap获取图标img src=$menuitem. icon/4.3.3 布局禁用布局禁用是停止用户使用该布局,通过“布局管理”的“高级设置”,把“是否启用”开关关闭即可。4.3.4 布局复制粘贴布局的复制和粘贴是方便布局快速高效的重用,通过选中要重用的布局点击“复制”按钮即可获得该布局的一份拷贝,选择要放入的组织后点击“粘贴”按钮即可把拷贝的布局复制到目标组织下。4.4 绑定菜单绑定菜单是为布局设置菜单,设置菜单后可以直接通过菜单使用该布局,绑定示意图如下:第五章 Portlet开发 P

18、ortlet容器 Portlet分类 Portlet视图 Portlet资源 Portlet动作 Portlet事件 Portlet参数 Portlet参数编辑器 Portlet权限分配 Portlet发布5.1 Portlet容器5.1.1 获得Portlet容器场景1:JSP页面中scriptgetContainer(#);/script场景2 : Iframe Portlet页面中document.getContainer();注意:(1)在Iframe中获得容器,必须保证iframe页面与Portal 在同一个域下。(2)要判断Iframe中是否已经注入了此函数。5.1.2 使用Por

19、tlet容器Portlet容器提供的函数:方法名称必须参数作用返回值备注createPart*title是标题新创建的链接块在Portlet窗口上创建一个链接块href链接createSep*segment否分隔符新创建的块在Portlet窗口上创建一个分割块createBlankPart*-在Portlet窗口上创建一个空白块setTitle*标题对象设置标题setContent*content内容内容对象设置内容setExposed*当前容器隐藏外框setUnExposed*恢复外框doMax*窗口最大化doReSize*窗口复原showTips*显示提示框hideTips*隐藏提示框do

20、View切换到查看模式doEdit切换到编辑模式doHelp切换到帮助模式doRefreshtimesamp时间间隔设置刷Portlet新周期doAction调用Portlet默认事件ProcessActionframeUrl链接地址调用Portlet默认的事件,并传递一个frameUrl参数name事件名称调用指定的Portlet动作param参数列表getOuter最外层的布局获得最外层的布局getRow所在列获得所在的列标有*号的方法可以重载。5.2 Portlet分类Portlet分类是为了让Portlet更容易查找,在Portlets节点上点击鼠标右键选择“新建Portlet分类”,

21、弹出新建Portlet分类对话框。输入ID、text、i18nName后点击OK按钮,Portlet分类创建成功。在建好的Portlet分类上点击鼠标右键。可以在分类中新建Portlet,或编辑、删除当前分类。5.3 Portlet视图UAP Portal 6.0支持 “查看”、“编辑”、“帮助” 三种标准视图,有关视图的信息,请参考JSR286规范。UAP Portal 6.0 支持 “最大化”、“正常”、“最小化” 三种模式,有关模式的信息,请参考JSR286规范。5.4 Portlet资源UAP Portal 6.0 支持Portlet资源请求,详细信息请参考JSR286规范。示例代码:

22、/使用Tag获取资源portlet:resourceURL id=/images/blackpoint.gif5.5 Portlet动作Portlet动作是Portlet前后台交互的一种方式。可以通过Tag、JavaScript来调用。示例代码:/使用ProcessAction Annotation定义一个动作,名称是 “myaction1”ProcessAction(name=myaction1)public void myaction1(ActionRequest request, ActionResponse response) ./Tag调用动作 actionURL name=”mya

23、ction1” var=url/portlet:actionURLa href=%=url% Help /JavaScript调用动作 getContainer(#).doAction(”myaction1”,);5.6 Portlet事件4 5 6 5.6.1 创建Portlet事件Portlet事件是JSR286中新引入的一个特性,规范了Portlet间的交互。Portlet事件是松耦合的,在一个页面中可以没有接收者或者多个接收者。通过Portal定义中的“事件”节点对portlet相关的事件进行定义。事件编辑器如下:值类型必须是可被JAXB序列化的对象5.6.2 触发Portlet事件a

24、) 在Portlet编辑器模型视图中选择SupportedPublishingEvent选项卡,选中要触发的事件。b) 在Portlet类中触发事件myaction2public void myaction2 (ActionRequest request, ActionResponse response) / 触发事件 . response.setEvent(myevent1, hello portal!);5.6.3 响应Portlet事件a) 在Portlet编辑器模型视图中选择SupportedProcessingEvent选项卡,选中要响应的事件。b) 在Portlet类中响应事件 * 处理事件ProcessEvent(name=public void myevent1(EventRequest request,EventResponse response) String val

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1