金蝶BOS企业V开发指南管理门户orle开发_第1页
金蝶BOS企业V开发指南管理门户orle开发_第2页
金蝶BOS企业V开发指南管理门户orle开发_第3页
金蝶BOS企业V开发指南管理门户orle开发_第4页
金蝶BOS企业V开发指南管理门户orle开发_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EAS门户Portlet制作指南说明本指南主要介绍EAS门户Portlet的制作过程。简要阐述了EAS门户的新特性,详细介绍了制作Portlet的过程和步骤,对制作Portlet过程遇到的常见问题进行了说明。本指南适用于EAS门户Portlet开发人员。目录说明2目录3第1章EAS门户简介41.1EAS门户新特性4第2章Portlet制作5巾2.1P可ortle涌t床制作步骤访致5幅2.2屑配置拨Portl饼et嘱信息般熔5扯标错配置杂Portl暑et妇定义信息专翼5猜足桑配置就Portl诊et贱业务处理信暑息宴捷6芒2.3叶向数据库插叨入相关数据寨室6灵2.4P比ortle荷t裳配置信息与任数据库数据元的对应关系薄融8组2.5丑制作袭Portl仪et景内容页面,贫实现业务需券求止退9握杂Port咳let浊内容页面聚JSP辆接口前竭10衔校Port股let餐内容页面芦JS征接口伸次13闭照Port墨let夕内容页面制揪作规范与约苍束匀楼16核匹Port截let只内容页面制续作常见问题辽受19城拒Port征let绑内容页面上HTC永控件的替换剥祝23傲瓶捡门户优化合世并且删除了浩部分拐js剪肢25酒第赠3诞章沃Port是let什业务设置腐窄27陷3.1帆关联禁Portl失et衔业务设置页该面洁疯28姻3.2P折ortle舱t愿业务设置页粘面特JSP涝接口奔厅29灭3.3P袄ortle乐t吩业务设置页谷面圣JS洲接口环炼30款第乡4捷章蓝Port嫌let车的使用萌受32冶第拢5裂章位Port圈let狭相关艇SQL粉脚本的导出破和提交差绸35蛋5.1暑示例知SQL馆艰35钱5.2辞脚本提交位攻置臂册36辱附录懂1Por贱tal动配置文件拆虎分说明旨争38赔附录距2Por缝tletU般tilA市PI乒蹄42粮附录子3Aja码x圣之筛Buffa豪lo虹开发指南摸腔54枝附录未4度门户恒Portl摧et翠之间通信伍灰59驴第焰1谊章嘉EAS门恰户简介扶1.1屠EAS门寒户新特性捧新的EAS雨门户在上一谋版本门户的队基础上对整治体框架进行闲了优化,实宇现了相关新在特性,包含菠如下功能:优(1)自定性义布局:可广自由布局,连跨列布局;扯(2)页签傅配置完善:荣以拖拽方式盾把P倚ortle纲t叶配置到页签状上;锈(3)展现蜜框架调整:弟可自由拖拽战布局显示,竞运行期用户兔可个性化配四置界面展示宅样式;炎(4)提供占容器六Portl桃et俯:将多个单邪一P观ortle销t组合成一样个P饮ortle皇t包;智(5)址Portl鸣et道增加属性设佣置:支持系壮统级和业务涝级属性设置须,且同时支译持定义期和杜运行期属性晃设置;等(6)搅Portl凳et唐异步加载:践页签中每个从P盾ortle耀t寨异步加载,肢并发运行;依(7带)通知和待切办可分类设基置和授权:赛分类可由平管理员统一肾建立和分配蛮,同时允许竟用户自定义率分类和管理莫管理员设置派的分类。筹第雁2踪章秧Port泽let制作挖2.1司专Portl穷et制作步翼骤拳Portl微et制作过菜程包含以下签几个步骤:乎(1)配置戚Portl毯et信息记(2)向数缩据库插入相番关数据超(3)绒制作Por酒tlet内巧容页面础,实现业务陆需求充(4)制作展Portl遥et池业务设置禽页面鲁(可选)浙最后一个步烧骤并不是必境须的,在P秀ortle祖t的业务需采求需要业务总设置时,才勺进行此步骤典。刺下面将分小禾节详细介绍碎Portl隙et制作的佩各个步骤,窃关于Por决tlet业絮务设置的内分容械将四单独雀在第3章中悼介绍。误2.2配循置Port石let信息舟纠配置Po劳rtlet妖定义信息溉(1)配置临文件路径欺EAS5.坟4版本:程serve应r旁/愿profi贸les蝶/磨serve躲r1院/柏confi补g静/溉porta网lConf降ig纠/置portl茄ets.x睁ml黑EAS6.仍0版本:壳serve矛r示/遵deplo银y糟/纷eas.e咱ar境/妄cp_we响b.war量/不WEB-I步NF渡/啄portl歉ets卫_xxx瓜.xml庆其中,xx五x表示具体宅的业务领域阁名称,如b阳os、敏eas等,转详细信息请捞参考敲“疫附录1P锯ortal赏配置文件拆踪分说明久”乘(2)配置薯说明熊<port规let>沾唐言<port等letID召>鹅1001誓</por夏tletI泳D>存层隔<titl互e>速test仿P莲ortle飘t跑</tit遵le>课腿希期<mode定s>舅覆墨紧<mode纲>纵叛海艺底<name征>view丧</nam陈e>凳园遭径滔<valu姜e>置portl贿et.te辩st谢</val妇ue>纸扫吓型</mod厅e>拘浆迷</mod问es>饼俘</por丰tlet>窑各配置参数灶值搏说明如下:膛1001弓:尚Portl忽et定义I狠D,全局唯钓一,不能重吩复。浑取值范围首具体约定如坦下:寸BOS焰为1-1亩99,脊EAS稳为200僚-999,单二次开发配为100拨0以后兰;议testP胜ortle踪t念:糠Portl流et定义信覆息,无特别扣要求,一般奉使用英文字件符标识胁。飞注意拢该标题信息弯仅用于在配暂置文件中区捉分不同的P隶ortle耳t,与Po顶rtlet共在运行时显择示的标题无袭关,Por忧tlet在戏运行时显示习的标题信息修由数据库中址的内容决定扒,2.3小抄节有详细说优明甚;娱portl厌et.te螺st奏:障对应于驾“兴Portl帝et业务处奴理信息凳”阻的配置信息担,具体愧见下一小节价。掌痛配置Po泥rtlet纪业务处理信农息跳(1)配置偏文件路径栏serve蚁r舒/才deplo没y舟/夏eas.e棋ar呆/桨cp_we胜b.war绑/轧WEB-I丛NF强/沉tiles挽-defs嚼_xxx内.xml惑其中,xx伙x表示具体贺的业务领域恭名称,如b革os、ea遗s等,详细挤信息请参考决危节中的附件霉《Port民al配置文像件拆分说明招.doc》含。扬(2)配置村说明弊<defi脂nitio挤nnam习e="犯portl弓et.te清st窝"观exten塞ds="p胆ortle室t_def纪ault_讲eas50狂"台contr射oller简Url="吃/Port退letAs茫sembl茎eActi轮on.do栗">化<put典name=瓣"port申let_i旧d"va膜lue="记1001系"兼诸/>邮<put韵name=滴"port效let_c颜onten绵t"va慨lue="毅/html副/cust番om/te挠st.js舍p锁"伯挖/>茎<普/defi形nitio糠n>暴各配置参数衡值说明如下堆:谱portl相et.te残st:问tiles扶定义名称,永和上寻一节覆Portl疫et定义信伞息佳的驻配置保持一漠致扛;输1001:滴对应的楚Portl舍et定义I蛇D艺,屿和上幕一节凶Portl产et定义信魂息胶的触配置保持一遵致森;泊/html惭/cust作om/te缠st.js遇p:曾业务处理页堂面熔(即2.来5麦节将提到的附“型Portl盼et内容页栋面屠”消)羞地址,如果器是Stru亦ts,则还涝需要在st节ruts-撞confi嫁g.xml至中进行配置选,具体可以示参考Str娘uts官方宾文档呜。烫2.3向殖数据库插入窄相关数据照通过喂EAS管理膝控制台单执行如下脚胆本,在数据诵库中插入一墓条记录,K势SQL语句方如下:哑INSER努TINT身OT_P滚ortal欧_Port验let(F侧ID,FC资reato得rID,F界Creat颂eTime污,FLas烛tUpda制teUse捧rID,F颂LastU侮pdate弱Time,棕FCont省rolUn所itID,杜FPort茄letDe班fineI自d,FPo荒rtlet堆Name_凑L1,FP饥ortle终tName棒_L2,F榜Portl丛etNam妨e_L3,要FEnab雕le,FP具ortle垄tNumb冶er,FD颗escri今ption侨_L1,F但Descr坊iptio旬n_L2,唐FDesc限r驱iptio万n_L3钳,袭FPort望letCa称tegor桂yID仙)竭VALU弟ES(倒NEWBO吵SID('颂0B344鸭890')详,'000子00000澡-0000爽-0000蜓-0000蛮-0000卡00000娘00013掏B7DE更7F防',{ts波'2023育-10-0方112:省13:14行'},'0倒00000关00-00治00-00叶00-00间00-00年00000矛00000学13B7D咽E做7F弊',{ts斧'2023夸-10-0朗112:翅13:14袄'},'0菠00000者00-00务00-00粥00-00孤00-00寒00000畅00000方CCE7A食ED4',破N'伍104斜'发,NULL均,苗N'盾周江盼测试1节'鞋,进N'掌周江拍測試1颗'姿,1,楚N'PN-油104恼'休,NULL罩,档N'余周江裙测试1嘱'奉,脏N'馆周江勇測試1熊'两,匪'饰XkGI/寿dDGlk券WJhX5纪ZEW9l陶OEPH磨2a释4=乡');卸说明与注意棍事项:致(1)插入随字段FID厅的值请务必改使用函数住NEWBO写SID丈,其中明'0B34柿4890'崖为Port陈let实体沉元数据编码嫁,该值不能涨更改为其他丛值,否则程灵序获取Po脚rtlet隙信息时将出缺错。函数夺NEWBO捡SID('颤0B344犬890')像每次执行会钳产生新的I趴D值,如果嘴作为脚本提舱交,请注意删修改为一个食确定的ID余值,且一定踏要支持可重桶复升级。粉(2)字段梦FPort栗letDe丰fineI患d的值一定娘要和Por剪tlet定河义信息配置扣文件(材笼节)中定义丘的值保持一燃致。山(3)繁体浓字段一定要为使用繁体文章字,否则和突语言不匹配跌。痰(4)字段乏FPort殊letNu盲mber的肝值为Por献tlet编妙码,其值不批做硬性要求碗,但建议使候用蔑“乏PN-架”消+Port泊let定义晋ID的形式芝,如PN-径1001。习注:斑(进2023-和11-16研)绑BOSS筑P3项目任已务中加入P移ortle妥t分类管理收,因此新增燃了字段FP虏ortle触tCate峰goryI透D闸相关默认分战类ID如下质:脸基础系统移:便'FZIy锅x扣l8gLU矩mP15I布W8klE难nUPH幻2a描4='曲基础资料犬:孕敲'VTh2持5HxPQ裤EKvva复IWWec约TGEPH男2a弦4='宣财务会计万:修伍'VFcH畅BNjYQ杨0qfzq恨DnSOO漂mMkPH划2a乳4='杆资产管理券:洒滴'90O4尊cecHi制kiMJo访EHN5P膀g8kPH触2a裕4='堤人力资源前:颜尚'5ZE/班Jdo9X破kGqY3螺8v30o院QXkPH辅2a名4='纱管理会计僵:百割'达4M地141/5宣vlU6f子PGEOu拥+pG7U非PH誉2a港4='闸资金管理俘:么'hLg/朴8i2uP及kmQOA拢KsHt浇88f愁0PH各2a矩4='军商业分析才:谁'IbL撞hLRrJ蔬xUyZg核DXwsR排DKR0P薯H喇2a甜4='喉协同平台悬:猴冰'm6AW钳en4UD宪0SBnZ滴2qs/D略n5kPH两2a燕4='吵供应链管理办:兰'm6AW爬en4UD扶0SBnZ酬2qs/D谷n5kPH谷2a菜4='茅成本管理:齿娃'R2IP安XjFfW驶EKCFO含8i99+饼bJEPH愧2a卖4='趣数据仓库耍:告杰'cXvg煮kmCk+再0Wf9O肌TQKtk宇G3UPH名2a暴4='炼房地产垫:略'kY+l副8pEiI努0mtkc际UNsF/温+uUPH患2a糟4='糊产业链协同标:虏家'Q+Y2询omUEm傻0ClpF絮1FbQA寿lEUPH是2a它4='疤其他秧:洁'XkGI督/dDGl裤kWJhX秃5ZEW9辫lOEPH情2a系4='起因此新增P进ortle济t时需要明胞确你的Po恒rtlet本要放在哪个传分类下,并聚将对应的分影类id插入前到Port段let表中死。渗如果不插入禁该字段,P围ortle艺t会默认显渐示在根节点船分类下肉Portl锣et类别可集以在Por萝tlet管穷理里面新增奖,因此你可耽以新建一个切自己的类别驱,同时需要兴查询央“期t_por驶tal_p翼ortle故tCate干gory收”守表,获取到汽你新建类别锦的id,再话来插入你的览Portl惨et到刚刚迟新建的类别招中僻2.4P下ortle险t配置信息底与数据库数男据的对应关牌系欧通常情况下袍,覆一珍条Port染let配置贴信息(po织rtlet汁s.xml亮以及央tiles世-defs墨.xml中鸽各冤一阅个条目)北对应数据库课表T_Po提rtal_驴Portl红et托中糕的一条数据久。衰如果码多个薪Portl盏et使用相也同的内容页撇面(til答es-de银fs.xm浆l中的遇<put渗name=凑"port匪let_c隔onten瘦t"va影lue="离/html诞/cust煮om/te捏st.js纲p勺"括见/>访)准,则一条P愈ortle浆t配置信息哨将对应数据拢库表T_P雹ortal咬_Port席let中的药多条数据。倘一条Por磨tlet配街置信息对应躲数据库表T掉_Port厉al_Po康rtlet誉中的多条数鼠据的使用场促景:内容管毫理定义了一水个Port晶let内容圣页面,每个犁栏目可以分蒙别对应一个赏Portl盆et定义,资不同的Po切rtlet堪定义通过参禾数进行区分敬,参数中记勺录栏目ID冒。可以通过非程序动态创漠建,也可以羡采用实体提匪交的方式。被对应实体:骂com.k快ingde姿e.eas谱.port下al.Po部rtlet凭Info务//P未ortle航t定义搜com.k溜ingde异e.eas霉.port愿al.Po亚rtlet伟Param笨eterI摩nfo蚂//Por功tlet参赚数字使用程序创校建完后,需被要刷新缓存馋才能起作用令,相关AP请I见葱灰节第(4)造点旗。塘2.岁5厌室制作Por糊tlet划内容页面点,实现业务蛛需求感EAS门户潮中的Por娇tlet可榴能马具有多个页漆面,如用于油展现业务逻组辑的主页面锐、业务设置姻页面叙以及较帮助说明页援面等。所用于展现业彻务逻辑的主努页面我们称屈之为匆“揭Portl瓣et内容页秘面梁”装,它是一个凡JSP页面坐,但廊并粮不是完整的息,其最终输械出为絮HTML片或段,榆不能还包含<ht钩ml>、<权head>摆以及<bo敏dy>标签森。也以下是势错误债写法示例,出Portl碧et内容页灭面不应该包彩含侍蓝色眯部分的标签幅:灶<html惨>文<head惰>民<meta底cont伪ent="布no-ca悦che"锦ht滔tp-eq锹uiv="哀Cache汽-Cont痰rol">惜<meta栗cont沸ent="固no-ca提che"奸-绕equiv改="Pra免gma">库<meta狱cont棉ent="裁0"ht称tp-eq适uiv="洗Expir培es">宫<titl何e>EAS吹</tit泥le>络</hea碧d>咬<body市><div>...侮</div莫>受</bod泄y>够</htm偏l>悟下图展示了娇Portl诚et陡内容页面钻以及帽Portl透et蹄业务设置页宣面。制图2-1付Portl梅et内容页卧面对则图2-2粱Portl晴et业务设呼置页面冰Port额let蠢内容页面由亮相关的各业蹦务部门根据踩各自的业务太需求具体实驰现。与EAS门户蓬框架宇在Port笛let内容柱页面上下文粘中提供了相岩应的捕接口成以帮助开发摔人员完成具案体业务逻辑径的编写委。御2.疏5酷.1原P搬ortle献t内容页面稻JSP接口轰(1)获取绢EAS上下基文断(Cont尽ext)他使用工具类碗WebCo挠ntext今Util溉的爱getEa打sCont刺ext广()方法忧。示例:迹<%@pa泳geim演port=闭"com.誉kingd冻ee.ea垂s.cp.泻commo劝n.web拜.util柜.WebC践ontex制tUtil辅"%>设Conte移xtus贸erCtx独=We太bCont做extUt语il.ge宫tEasC衔ontex均t(req拍uest)锈;醋(2)获取堵上下文中的贩用户、组织腾、职员等信培息卸使用工具类件Conte碗xtUti纱l炼,示例:哨<%@pa肯geim向port=搂"com.泼kingd侄ee.ea棕s.uti隐l.app昌.Cont桂extUt晴il"%>...倚Strin妨gnam兵e=n禽ull;海Perso槽nInfo柴pers土onInf度o=C佩ontex识tUtil俯.getC弟urren搬tUser陷Info(凭ctx).拥getPe源rson(拘);准if(p前erson担Info易!=nu突ll)胳{凯顷商name笔=per奔sonIn婚fo.ge椅tName图();}饿(3)想调用服务器夏端方法霜EAS6.脂0打补丁脆PTM03幻5205巴之前:以与Cont箱rolBe胞an中调用饿本地方法一贴样香,示例:敬Conte演xtct耍x=W办ebCon停textU狡til.g释etEas答Conte委xt(re坐quest受);云IMess顶ageCe活nter骡iMess稠ageCe贸nter悬=秀Messa漂geCen幼terFa巴ctory巨.getL耕ocalI台nstan蝶ce(ct糕x);蛛IRowS醒etro选wset育=iMe妙ssage娱Cen刃ter.g掏etAcc鉴epted勿Task(旅);郊EAS6.洪0打补丁部PTM03游5205慕之后:序IMess降ageCe采nter督iMess果ageCe悬nter赶=弯Messa姑geCen研terFa隶ctory怨.getR恳emote叮Insta疗nce()械;符IRowS消etro努wset绩=iMe钉ssage殊Cente久r.get占Accep钟tedTa俘sk();估(4)心Portl丙et操作拴使用接口根com.k坑ingde独e.eas浙.port荒al.读IPort字alSer发viceF各acade秧,该接口提立供以下方法欢:怪·疯禁用Por祝tlet(议含批量处理炸):横disab懂lePor挥tlet众刃·斯启用Por庭tlet(挎含批量处理赔):姿enabl素ePort轮let战·驴作废Por众tlet:浅delet肯ePort喇let镜·缓新增Por阔tlet骑(无返回值讽)逮:产addPo仔rtlet僵·池新增Por虚tlet枪(返回新建驴ID)央:addP岁ortle届tRetu摇rnId海·乏更新Por宿tlet确:率updat狮e卵·妄刷新Por督tlet缓梨存留:桑refre团shPor悼tletC纵ache搁·揭获取Por路tlet:凝getPo摊rtlet注意:练·新所有与Po朋rtlet氧相关的操作表,如添加、型删除、更新巡等,都必须国使用该接口涂,不册要直接调用患IPort使let接口珠对Port萌let棚进行操作模;豪·树进行Por直tlet操花作跨(获取Po盯rtlet鞠除外)低后,在最后赤务必则使用ref笔reshP挺ortle指tCach前e来刷新P介ortle笨t缓存数据差。示例:沃IPort哈alSer汉viceF表acade歼serv慢ice=变Port浸alSer架viceF松acade所Facto壳ry.ge仓tLoca悉lInst乏ance(怕ctx);眨servi拨ce.en吴ableP港ortle皂t(por直tletI裙D);摇servi鸽ce.re尼fresh轮Portl恰etCac爷he();甘对Port廉letEx切tInfo瞒的操作,由侵于Port乓letIn滥fo包含P誓ortle娘tExtI氏nfo,因确此燕同样距通过接口枝com.k迟ingde爸e.eas众.port画al.导IPort贪alSer衡viceF愚acade机进行,举例董如下:肝(其中,盟portl脉etInf娇o都为Port另letIn著fo的实例颂)扑·近添加Por蛾tletE盛xtInf秤o刷Portl恼etExt狂Info扫portl膊etExt比Info要=new母尘Portl缠etExt豪Info佣();求portl淘etExt滚Info.护setTi醉tle("挪自定义Po途rtlet重标题");吵portl糊e浙tExtI铁nfo.s棵etBiz璃DefUr肚l("/h印tml/p未ortle限t/exa鄙mple/称demoP搭ortle记tDefS梦ettin到g.jsp铸");在portl跌etExt周Info.规setBi陕zInsU锯rl("/以html/回portl祝et/ex诚ample盾/demo邪Portl禁etIns捏Setti滋ng.js咐p");峰portl索etInf俊o.set依Portl遗etExt励(port摧letEx你tInfo车);冻IPort粥alSer扇viceF使acade负psf击=Por想talSe睁rvice品Facad器eFact毁ory.g效etLoc脂alIns亏tance历(ctx)概;干//如果糠portl姥etInf笑o是新增,绞则欧psf.a窑ddPor葬tlet(是portl野etInf梁o);茄//如果避portl甚etInf猎o是修改,着则撕//叠psf.u各pdate狮(port榨letIn定fo.ge映tId()迎,por私tletI戴nfo);涌·嘱修改Por痒tletE迷xtInf租o觉Portl简etExt肆Info炸portl拥etExt台Info唉=虑port鞋letIn绩fo.ge两tPort稿letEx打t()桌;侍portl鱼etExt圣Info.宅setTi馆tle("嗓修改自定义乱Portl惕et标题"豆);壳IPort拒alSer堤vic陷eFaca情deps印f=P傍ortal望Servi交ceFac夸adeFa订ctory号.getL彼ocalI宁nstan瓶ce(ct蓄x);皱psf.u徐pdate打(port鼠letIn肉fo.ge伏tId()涉,por胀tletI乳nfo);士·兼删除Por畅tletE那xtInf屑o润portl夏etInf饥o.set营Portl弄etExt宪(null博);厘IPort幅alSer顷viceF浸acade币psf澡=Por络talSe悲rvice雄Facad瓦eFact暂ory.g光etLoc糖alIns垦tance饼(ctx)振;洒psf.u董pdate蒙(port泳let淡Info.品getId莲(),p醒ortle抛tInfo杜);宫(5)获取娃Portl勿et竟相关信息摩包括Por涂tlet定翼义和实例信武息,如Po拒rtlet司在配置文件窗中的定义I温D,切在数据库中句的定义ID川、实例ID庆以及Por汇tlet的睛个性化信息筒(自定义标盏题、高度、健颜色配置等谁)辨等。跪使用工具类坛com.k火ingde忠e.eas馒.port测al.we丘b.uti详l.奉Portl恶etUti听l丽可以在Po缴rtlet火内容页面以敌及业务设置羽页面(后续据将提及)上宁获取Por禽tlet的多相关信息,及包括Por亚tlet的冒个性化信息赠(如果存在且的话)。蚕以Port映let内容田页面为例,田假设需要在举此页面获得砌Portl烘et的自定层义显示名称谨以及Por粉tlet实误例的高度。饰首先引入P造ortle觉tUtil叙:滨<%@p廉agei漠mport总="com破.king虑dee.e月as.po币rtal.底web.u赠til.P宗ortle塔tUtil翼"%>裳获取Por偷tlet自贝定义显示名寺称:卡Strin掉gcus骑tomiz溪edNam燕e=P可ortle望tUtil长.铺getCu遭stomi总zedNa砌me(re吹quest伴);梳获取Por毯tlet实搁例高度:惜inti揪nsHei驴ght=月Port保letUt渴il.g筛etIns帅Heigh熊t(req血uest)宫;瓶高度值单位祸为像素,如乏果高度值为箱0,则表示病实例的高度载自适应。吃关于Por可tletU拉til的接医口请参考依“稿附录2P石ortle楼tUtil吊API快”呈。代码参考:牛serve口r塌/川deplo驻y合/快eas.e少ar峰/蚂cp_we膝b.war定/甚html裙/联portl龄et耻/巡examp央le耳/荒demoP静ortle游t.jsp买2.战5焰.2P容ortle响t内容页面温JS接口担这些炕JS拒接口(变量肯或者函数)绵在Port卸let内容窜页面中可直蚕接使用。壮(1)乳B细uffal贱o躬Ajax妄框架定义了暖两个Buf辉falo喘对象雕:另buffa管loAsy皆nc念:异步方式良buffa书loSyn腾c甘:同步方式使用示例:笨buffa妈loAsy希nc.re秘moteC海all('稻messa工geSer违vice.祥getMs记gCoun侧t',[录true]旁,fun倾ction鉴(repl羡y){束v犬arar绣r=r舱eply.士getRe掉sult(祥);铅.仆..}盛在Port浊let内容受页面中使用尺Buffa盛lo时请直桌接使用以上援两个咽对象言,不必重新干创建Buf挖falo对品象。蛙在上一版本堤中,框架提胞供的Buf卵falo尺对象刊名称分别为凝:盏buffa坟lo港:异步方式坏buffa返lo1母:同步方式罗这两个克对象够在狐门户框架议新版本中仍管然保留,但察不建议使用中。恐请使用bu高ffalo喂Async笑和玻buffa遥loSyn肢c衫。位注意啄,肢如果需要创书建新的Bu末ffalo康对象,请取避免摘使用buf服faloA远sync、春buffa体loSyn企c、buf齿falo、骡buffa倘lo1这4掘个变量命名尸,否则将会冤覆盖这些框矮架提供的B勇uffal震o对象。巩(2)打开煎客户端恶GUI政界面另invok撒eFunc越tion(猫uiCla阵ss,桌李uiCla久ssPar余am,点载uiOpr什t,母向openM再ethod老)慧;犬creat拳eMode牧lUI(u妇iClas突s)拼;浪creat谣eNewW袍inUI(幸uiCla侄ss)桌;添creat腾eNewT援abUI(改uiCla圣ss)黄;抢openE乌asMai汗nMenu策()便;庄其中续uiOpr倘t苗可设置为字碗符串:死ADDN印EW滩、考VIEW盖、碍EDIT梯ADDNE升W颤:新增灵VIEW祸:查看测EDIT用:编辑韵openM热ethod筑可设置为数欲字:侦50、80雅、及其他数悲字鲁50:模态敲窗口螺80:新开妙窗口压其他值:新肚开页签抱单据查看店GUI界面滤接口:地viewB养ill(b颂illId茎);谦参数为单据伯ID(单据京的UUID这,非单据编券号),EA拾S门户页面灰在不同帧下东调用方式略住有不用,门寺户各页签P怨ortle新t(比如我把的日历,我林的工作台等柱)标准调用豆方式为直接皇调用:斩viewB奔ill('绝63fYL纽q2CTO伪CwsBg乞Fdet+扁6Qney箩dw=')毕;英而各自页签怒加入了帧(比frame慰)的情况下揉(如流程中芒心加入了n帖ewMes移sage晓Frame状),需要如胸下调用:魂paren雷t.vie穿wBill兆('63f惜YLq2C谅TOCws握BgFde刊t+6Qn酷eydw=信');升燥其他多层帧数的情况以此蜡类推,需要枪通过par台ent或者凝top等方辆式获取上层访的蚂JS页函数来调用须。铲更多说关于打开G姿UI界面的束函数请近参考跳以下文件:更serve耍r煮/葛deplo虽y喝/饲eas.e耕ar科/李cp_we骂b.war千/效commo铺n魄/愧js吵/细easHa谈ndler亿.js梦(3)拖动搏Portl最et后刷新孤Portl企et内容歇该功能常用档于Port窃let宽度驴需要自适应订的场景,如厚“钞通知Por府tlet守”侵和忠“裤待办事项P键ortle修t菠”姥,由于这两娱个Port巡let的宽被度由JS动恩态计算而得珍,所以当他愚们移动到其延他不同宽度水的区域时,考需要重新计针算宽度,这痛时候就需要海刷新Por徐tlet内氏容以触发宽春度的重新计留算。弓在Port敢let内容适页面中实现驰以下函数,娃并返回tr耻ue值:何funct宁iona多fterP仅ortle僚tDrop李<%=前fp例%>辨(toWi海dth)具{燕r诊eturn减t笔ru绕e;}畜其中,扬<%=fp米%>魄是用于烫避免少JS变量或耗函数棒命名冲突的沉标识兴(关于JS逼脚本变量煎和函数绑命名约束以豪及该标识雀如何获得等钻问题恐请参考瑞2.鼻5.寄3晶节),该标昂识必须加纺上,否则框贤架无法判断低需要刷新哪含个Port港let。竖参数toW粱idth为谣目标区域的述宽度恢值酷,由框架传梨递,在该函咸数内可用该勿参数值进行鹊一些必要的蠢处理挽。香不实现该函短数或者函数阴返回tru凯e以外的值行,则拖动P苍ortle幕t后,Po腐rtlet删内容不刷新魂。(4)其他占·站Porta扁l路径:暗kingd虑ee.po诸rtal.挠commo舍n.por扔talCo茫ntext饲Path;呜其值如:h录ttp:/欲/192.珠168.3户3.1:6卷888/e上aspor塌tal回·惨Porta开l竹当前总色彩方案轰皮肤路径:池kingd合ee.po茄rtal.敌commo践n.por辟talSk吉inPat娇h;新其值如:牲:拍//192恼.168.扩33.1:查6888/瑞easpo尼rtal/吧skin/梨01爬·闲添加CSS茅样式文件到截门户的he灵ad区域煤kingd助ee.po拉rtal.候commo昏n.add圣S葛tyl瘦eShee逃t(css敲FileP战ath胜);被其中css啦FileP皂ath为C六SS文件的部路径映,用法示例播:矩kingd献ee.po党rtal.注commo杨n.add蛮Style理Sheet其('<%=净WebCo剪ntext犹Util.傅rende割r(req衔uest,伯"/ht午ml/po支rtlet崭/exam词ple/d谷emoPo梨rtlet撕.css"回)%>')宏;翼注,并不一祥定要使用W纪ebCon中textU窝til.r登ender粥方法来获得原CSS文件芽的路径,可址以直接如下叛使用:奉kingd北ee.po驰rtal.般commo降n.add贱Style慈Sheet权('/ht归ml/po惯rtlet护/exam戒ple/d朗emoPo谋rtlet绝.css'芳);可但是,使用方WebCo兴ntext南Util.沉rende萍r方法获取兵文件可获得盼压缩特性,毒建议使用该版方法。兴·次最大化Po刑rtlet仁kingd逐ee.po减rtal.疤commo烫n.max夕izePo倾rtlet弓(wi哲n渡dowTi怨tle,序servl屿etUrl恋,par掘ams)话;汁其中,wi列ndowT造itile素为最大化P训ortle漏t时,窗口君的标题,s注ervle麻tUrl为虑最大化Po皆rtlet染所使用的u揭rl地址,肿param晌s为需要传硬递的参数奔2.状5魂.3P违ortle患t内容页面遥制作规范与埋约束昂(1)望业务JSP坚代码文件放菊置规范旬·鸭二次开发的要业务JSP储代码叼受保护的需缝要放到咽serve炉r川/脸deplo捆y懒/盖eas.e滔ar仙/槽cp_we浩b.war泻/毫html竖/近custo吸m献目录下盈。态非受保护的诚需要放到吨serve采r场/智deplo角y董/永eas.e喇ar炸/营cp_we秀b.war狮/宇custo乳m夫目录下脏。隐·丽EAS标准华产品的业务委JSP被代码摊受保护的鲜需在颂serve纹r窜/搞deplo错y升/扯eas.e谎ar镇/界cp_we派b.war宪/饼html除/构portl震et猪目录下建立怨对应的业务动系统子目录岸,并放置对津应的业务J横SP代码式。启非受保护的售在城serve伟r扒/已deplo都y韵/融eas.e励ar佛/位cp_we饲b.war蜡/津biz筛目录下建立巴对应子目录夏,并放置对骂应业务JS安P代码。查·提受保护和非登受保护的区档别差受保护的J韵SP页面必夹须要通过E比ASPo膜rtal登律录钳后才能访问拥,非受保护锅是指不需要遭EASP径ortal辛登苹录荡就可以访问夏。吸(2)JS原代码文件放之置规范假JS文件放找置到以下目龟录:枣serve卵r席/嫁de鉴ploy/授eas.e殖ar/cp赖_web.耐war/c担ommon棋/js/恐各业务部门经请自行在j雀s目录下建野立子文件夹榴,以区分框佣架和其他部膜门的JS代缴码。该目录羞下(包括子鱼目录)的所购有JS文件慕在构建时都查会奋自动门进行凉压缩巡,将JS文鸣件放置在其皆他目录将不百会获得压缩铜特性。旗(极3夏)Port宜let内容碑页面中,J而S脚本变量智和函数盗命名约束怒(重要)出在一个HT居ML文档内声,Java丧Scrip芽t全局变量悄和函数命名剂必须唯一,乒否则会被后斑定义的覆盖慨。由于EA瘦S门户中,妈不同页签,题不同Por届tlet的蓄内容最终将错输出到一个街HTML文貌档中,为了定避免不同的锅Portl谜et内定义稳相同名称的匠JS变量或横者在不同的锐页签内包含仿相同的Po妹rtlet与定义,必须坦保证Por根tlet之苏间全局JS薯变量名和函宝数名唯一。扯提示糕:只有Po剩rtlet猫内容页面(洋JSP片段分)需要考虑驰命名问题,饰保证全局变貌量和函数命蛙名唯一,其涝他独立的页层面(包含完惨整的HTM慈L标签的页窑面,如使用渴ifram蜘e方式嵌入读的页面、P引ortle伐t业务设置变页面等)则俭不需要考虑帝该问题。妈最佳实践逗:尽量少使歉用全局变量坝。大量地使骑用全局变量堤将增加变量夫命名冲突的鸡几率,应该李谨慎使用全筛局变量。圈关于如何减彩少JS全局战变量和函数熄数量提的方法请见钻2.份5释.4忽节牛。打补充知识表:在追JS束函数内,使超用var关昌键字定义变弟量,变量的觉作用域为局局部作用域,萄如果不使用职var关键穷字,则为全丰局作用域。彻JS战函数内的局明部变量定义加时都应该加恨上var关闭键字阿。隙使用以下两辈种接口之一系,均可获得飘与当前Po传rtlet暗实例相关的念全局唯一标阀识倡(铜“类指纹于”袜信息夫)萍。怨为Port乡let内容午页面壮中模JS脚本的追每个全局变邪量和函数加铸上该累标识,魂则可保证该搬Portl璃et实例的葱JS全局变坊量和函数在晴EAS门户拐中全局灿唯一,避免珍不同Por委tlet之倍间以及不同班页签相同P愤ortle索t不同实例五之间的JS始变量和函数傅命名冲突。接口1:榴使用com皇.king佩dee.e绪as.po旦rtal.煌web.u物til.千Portl株etUti韵l示例:繁//fp岗iss滥hort绝forf庄inge票rprin类t戚Strin各gfp钻=Por隆tletU帮til.g眯etFin晒gerpr鄙int(r势eques盏t);接口2:驼使用托com.k冤ingde杀e.eas英.port钻al.we宏b.uti亡l.驻Portl源etInd戚exGen中erato店r示例:之//fp三iss只hort自forf料inger豪print斜Strin绩g员fp因=Po字rtlet吵Index酷Gener橡ator.念nextP杀ortle臭tInde哪x稻(requ挡est);隆两种接口的虎区别觉:飘接口1既可赛以在Por腰tlet内垫容页面中使坦用,也可以兄在Port捞let业务题设置页面中简使用(见第掏3章);而斥接口也2喉只能在Po卧rtlet图内容页面中舍使用。酿获得关“衬指纹仍”用信息后(示骂例中为Ja饺va变量f洁p),为每泽个全局变量撇和函数加上望该标识,代馆码示例如下烈:扑<scri岩ptty妨pe=”t素ext/j文avasc废ript”缝>万vara盈<%=fp其%>嫌=1;演varb缎<%=fp津%>模=2;矩funct晶ionf烛nOne社<%=fp衡%>劝(){}免funct魄ionf药nTwo剖<%=fp覆%>全(){}敌</scr侵ipt>……刘<ahr粉ef=”#侧”onc慌lick=乏”fnTw泥o似<%=f贪p%>浑()”>M裤yLin辱k</a>泳上面的例子泄中,一共定粒义了4个全姐局变量(包肥括函数),超通常情况下深,应尽量纠控制全局变询量的数量,捡关于如何减掩少JS全局歇变量和函数蹲数量的方法毫请见多2.皂5魂.4灿节。背注意梨:该约束必率须严格执行补,以避免艳影响框架和仙Portl质et的功能尼。独(削4烟)恩Portl扭et内容页腾面中,CS挂S样式命名供规范浇(重要)堤和乐JS脚本变哄量和函数命论名管需要全局唯翅一一样,C方SS中的c咸lass和碧id命名也堡需要考虑到滩全局影响的疲情况。雁提示路:只有Po诊rtlet匆内容页面(饶JSP片段异)需要考虑推命名问题,县保证cla侵ss和id砖命名唯一,皂其他独立的咸页面(包含姜完整的HT架ML标签的售页面,如使失用ifra妥me方式嵌伴入的页面、妹Portl凉et业务设谈置页面等)族则不需要考爆虑该问题。彻页面中的元汁素id属性脊值需要保证信全局唯一,抱这就需要进烟行类似JS信脚本中变量逗命名约束的惰操作,如:或<div晶id="t吹est-d提iv-桨<%=fp洋%>聋"></d倚iv>式如果id值尝不添加唯一蠢标识,则在镇页面中存在爆相同Por县tlet的垄多个实例(陡可能位于不籍同页签内)羞时,页面中国将出现多个质id相同的由元素,这将暂对样式或脚受本产生影响金。骡在Port秧let内容箩页面中书写文CSS样式曾有两种方式聪:裤·但在标签中加荒上s由tyle索属性树这种方法最悬直接,而且叨由于优先级聚最高,可以笼避免Por各tlet内育容的样式受终到Port星al全局样碌式的影响,算但维护起来泰比较麻烦。搁·酒引入外部C摇SS村文件诚这种方法可芬以对Por倘tlet内妨容的样式进训行统一管理变,方便维护舌。喷使用JS脚毒本领引入雹外部CSS阶文件熄的方法如下掠:扭kingd醉ee.po奇rtal.著commo终n.add创Style稼Sheet术('<%=惩WebCo侍ntext助Util.互rende怠r(req间uest,棚"顿/html剩/port龄let/e堆xampl左e/dem叶oPort急let.c丝ss脏")%>'距);间红色部分替代换成实际的莫CSS文件期地址偿。关于该枣JS灭接口在往2.幼5床.2挥烂节(更Portl恒et内容页闭面JS接口胖)已有详细松阐述。鸣注意谎:不要在P丸ortle堆t内容页面馅中直接使用蒜<link融>标签引入盖样式,扩框架被目前不支持催这种方式。驶可以使用<港style穴>标签来书屿写样式,但申并不推荐,命因为补页面中主存在相同匹Portl杀et浩的多个垮实例时,这丈些样式将被枪包含击多次,当然逝,这通常不范会是什么大信问题。绞使用函数添kingd怀ee.po向rtal.汪commo飞n.add罗Style返Sheet斑添加样式文跑件时,即时质页面中存在珠相同赵Portl贫et谈的多个柜实例,样式亲文件也只会狠在页面头部桐加载一次。横使用引入外配部CSS文卫件的方式时切,CSS样驾式的命名需冰遵循以下规殖范:羊kpp-x拼xx-yy川y言kpp前缀染代表Kin岛gdee馆Porta克lPor茂tlet批xxx为模灯块名称,如爸mycal待endar敏以咐“绪示例Por持tlet东”卷为例,其C毫SS样式的荡命名如下所境示:往.kpp-究demop教ortle镰t-tab涂le茅{}串.kpp-肺demop匆ortle防t-cla选ss-se贩lecto你r-nam剧e填{}……装2.迟5芹.获4毒P耍ortle备t内容页面玻制作常见问盈题拴(1)如何柜嵌入一个完挥整JSP页宣面?盯可以在JS罢P页面中嵌排入ifra意me持帧扁结构,场景杰:EAS炸Porta奴l中嵌入的宋OA页面,夏具体童可参考挨以踩下文件太:泡serve仍r谦/当de后ploy贤/让eas.e达ar嗽/补cp_we凶b.war疾/属custo咳m功/傲yirua尸n_oa.菠jsp女逼(2)妙如何提交页畜面数据?链·铁打开新窗口案进行处理醉·腾使用最大化抢Portl偶et删进行处理稻·条使用摸Ajax技轿术来提交。郑目前成熟的危A色jax框架万很多,EA舌S冤门户测中洪采用的是拣B闭uffal稻o框架,相妥关开发指南狼见类“百附录3A闲jax之B藏uffal镜o开发指南谎”赶。匹(3)如何苏直接执行S歉QL语句?全impor悉tcom乎.king淡dee.e拿as.ut琴i晴l.app久.DbUt沾il;挪impor握tcom拒.king值dee.j互dbc.r本owset扣.IRow件Set;敏Conte典xtus矩erCtx今=We窃bCont坐extUt浙il.ge演tEasC臣ontex利t(req瞧uest)研;已//执行查骂询稠IRowS攀etro泉wSet锋=DbU型til.e捎xecut怒eQuer异y(ctx冒,"se倦lect动*fro汁mt_p勾m_use勿r");帅if(r命owSet椒!=n迈ull)穴{皆w滤hile器(rowS鞋et.ne修xt())猾{左S早tring培user山=康rowS秃et.ge获tStri坟ng("f迷numbe忠r");}膜//执行更飞新度DbUti浪l.exe疼cute(赞ctx,晚"upda殿tet_挂pm_us受erse涨tfna毒me_l2拆='zha集ngsan宝'whe障refn岗umber尿='002夏01'")修;础(捉4董)暂我觉得我的弟JS脚本中抚全局变量和生函数的命名税已经很规范编了,比如都筝加了前缀x蛛xx_yy常y_zzz责,器是不是就可赠以不撞使低用框架提供涝的方法进行红变量占和函数命名务的修改呢?团恐怕不行。割因为即便命壳名已经做了惠规范,还是细有可能与其慧他Port塔let或框尾架的JS变讽量和函数产黑生冲突。即绒便可以保证倦和其他Po途rtlet磁或框架不产珠生冲突,不算同页签下相史同Port蓄let不同污实例的代码肃肯定也会产梅生冲突。比叔如页签1下盐有Port锅let1的倦实例Por帝tletI发ns1,其务中使用了全裹局JS变量冻a,页签2虏下有Por抬tlet1粥的实例Po欲rtlet赛Ins2,颠必定也使用拿了相同的全匹局JS变量乖a,由于不蛋同页签之间退的Port娱let的代植码都在同一劣个EAS门堂户的HTM车L中,所以恐JS变量乓产生了冲突活。粮所以,请务泡必按照订2.币5经.3害节第(2)初点的方法进陕行JS脚本威全局变量和项函数的命名罚规范。胜(5)捏如何尽量少芝地定义JS磨脚本中的全细局变量(函捏数)?雪可参考以下趟风格:只<scri说ptty揭pe="t把ext/j冬avasc井ript"沾>株varm渡ycale代ndar众<%=fp茄%>脑={纤a馆:1,经b鸽:澡运2,盐f跟nOne:协func返tion(厦){请}扰,蜘f版nTwo:疾拍funct续ion()材{}}施</scr慨ipt>……富<ahr纸ef="#捆"onc膝lick=睬"myca主lenda区r技<%=fp遣%>菜.fnTw址o()">肢MyLi扬nk</a织>现使用该方式它,只需定义么1个全局变逆量光mycal系endar绍<%=fp优%>石,其他变量隙或函数都是虫局部变量,博不会造成命芬名冲突。腊(6)原有且的Port即let中的双代码(主要耀是JS代码行)需要按照喇JS变量和梦函数命名规驳范进行修改拥吗?赚如果使用的窑是新的门户版框架,那么蜻必须进行代邪码重构。呀需要进行J异S代码重构桂的页面亭仅仅是筒那些对门户欣全局JS变撒量吗和函数宣有影响的页员面,如Po热rtlet跑内容页面东,而对于其河他完整的页袋面(包含完躲整的HTM骆L校,如<ht戏ml>、<鹊head>燃、<bod伟y>等标签失)堵,如Por骗tlet业送务设置页面香,以ifr眉ame方式洗嵌入到Po忽rtlet虏内容页面的疲页面,则圆不需要丈进行JS代匹码重构,因励为他们对门换户全局JS贺变量和函数切不会产生影趋响。班(7)膝旧Port册let的J尖S代码中包餐含了很多全现局变量和函现数,一个个肠修改似乎比妈较麻烦,有隆更快的方法殖吗?直如果你的J崭S脚本中存孕在大量的全贼局变量,逐念个替换比较缘麻烦,则可半使用以下的书方法,使用锄1个全局变貌量来息“疫包装探”蹲你的旧代码拼:腾假设你的旧册代码如下:症<scri港ptty阔pe="e旗xt/ja裕vascr璃ipt">约varv镇ar1=鸟1;伯varv哈ar2=铺2;乌varv净ar3=饭3;垂varv税ar4=糖4;意闻.对funct扶ionf射n1()难{}炉funct布ionf递n2()纵{}懒funct绒ionf叨n3()网{}……电</scr孝ipt>秘其中在HT竟ML中使用友了fn1和告fn2两个村函数喘<ahr拘ef="#圾"onc衫lick=绕"fn1(速)"></昌a>剩<ahr厕ef="#际"onc般lick=茄"fn2(荒)"></就a>坝重构过程如羽下:丝定义1个全锄局变量,并梦使用某个方耕法(示例中妄为init迹方法)来初街始化(包装逢)你的旧代泛码块:槽<scri喇ptty似pe="t访ext/j仇avasc俗ript"围>对varm劲yapp后<%=fp宿%>轧={释i胖nit:紫funct叨ion()纤{碑子//危坝椒旧代码块前可倦//织孝va违rvar臭1=1撕;蛾尿va宿rvar酱2=2辉;婶脾……芬陪fu洲nctio汽nfn1恋(){阅唇}鸟韵……应息//嫩固亿旧代码块犬神/由/}}招myapp木<%=fp披%>匹.init枝();名</scr投ipt>怒检查原有代填码中,在洽HTML林里使用了哪宇些函数,这惜里只使用了遵fn1和f形n2两个函塞数。在新代帖码的ini怕t方法中为版这两个函数拐提供对外的搞“断接口":妄<scri卡ptty楚pe="t越ext/j考avasc逆ript"舰>显varm肝yapp骗<%=fp布%>违={劲i廊nit:段funct登ion()艘{刘章//咽龟肚--旧代佳码块--膏岸/正/铁伞va作rvar队1=1杰;蛙沫va敬rvar限2=2丘;结慎……吨料fu结nctio处nfn1易(){光阀}漏微……关愿//旬谷锣-旧代码之块盼忠--//旋推车//提供资对外的秀“具接口"充时th滩is.fn鞋1=f托n1;道梳th括is.fn州2=f分n2;}}鸽myapp版<%=fp伴%>蛇.init婆();渗</scr专ipt>雕现在在歼HTML隙中这样使用松函数:炮<ahr住ef="#穿"onc丹lick=轿"myap逃p蔑<%=fp或%>沉.fn1(围)"></索a>羊<ahr欺ef="#蔑"onc密lick=遍"myap箭p序<%=fp码%桶>型.fn2(鸣)"></陷a>静下图展示了绒该重构的过存程:若图2-3栏重构过程示误例晨这种方法适洽用于存在大婚量全局变量挑的页面,可问减少替换全阿局变量的数胞量。饱唇P举ortle彻t内容页面粱HTC控件称的替换玉在前面的一峡段时间,门万户控件基本侧已由HTC轻替换为EX堵T控件,因太此为提高门端户性能,本滩次优化去除中了门户在T扮OP页面中捞的HTC控年件引入。匠修改可能造镇成相关业务口Portl朝et或业务竹页面的原有双的HTC控程件不可用。解决方案:妻将HTC控嘱件替换为E中XT控件(偷建议)美EXT控件模的基本文件透门户已经在躬TOP中进施行引入。因伙此业务po张rtlet桶页面或其他征内置页面可猜直接使用。翻门户使用的滩EXT版本晌为2.0芦RC1陶注意:单独标打开的页面获以及业务p体ortle托t中嵌入的柿ifram剖e等,需要船重新自行引梳入ext的靠类库。引入庄文件参见膜cp_we仆b.war烟\html织\comm敌on\to上p.jsp鉴自行引入H氧TC控件(丝不推荐)常如果还是想绢使用原有的丘HTC或暂樱时不想替换日,需在自己互的页面自行张引入HTC铺控件邻如下两个文企件引入了所友有原有的H翻TC控件,古如果你只是雀想使用其中顷一两种,请于在top_乱htc_j还s.jsp拼文件中找到兴自己的HT觉C控件作单拍独引入肯替换为EX交TJS控件福方式:介用EXT控万件替换HT律C直接使用缎EXT的标距准控件即可停。以下以b挂utton秃控件替换为肝例晨在原有的标偶签中如疾<tdi冒d=吼”飘myBtn戚”净></td恭>兵然后写一个碑JavaS坟cript导函数创建一染个EXT控迁件即可莫funct地ioni唤nitBu宿tton(杏){堆摸newE底xt.Bu洋tton(虚{挠推菜rende秩rTo:激‘歼myBtn湖’域,葛片委text:陈提‘诉更多洋’寻,勿迁畜handl惭er:b胶tnCli梢ck});}彼这样在运行旷时直接渲染瞒一个Ext钥的按钮到<衣td>标签周中领具体EXT忍控件使用可羊参考EXT卖JS开源类孤库么动门户优化女合并且删除移了部分js杏此处优化门甚户对各种K面D扩展ex稿t的js文若件进行了合厅并。为了不谋维护两份代魂码增加工作砌量。对被合艺并的js进选行了删除。孔"/com挺mon/j狸s/ext逆sp/js戒/comp兼enent群/KDMu巾ltiLa喘ngBox只.js"仇"/com糟mon/j虏s/ext瑞sp/js己/comp陈enent挤/KDLa悦bel.j秋s"闹"/com辉mon/j汪s/ext圆sp/js欢/comp堪enent裳/KDPo贤rtlet栗.js"害"/com况mon/j杯s/ext息sp/js初/comp么enent须/KDP专aging均ToolB孔ar.js无"诱"/com也mon/j图s/ext籍sp/js震/comp难enent肺/KDTa池bPane度l.js"层"/com黑mon/j水s/ext仰sp/js置/comp蓬enent隶/KDYS薯tyleT衡abPan争el.js望"乞"/com绍mon/j先s/ext竖sp/js割/comp贪enent铃/KDTa芒bPane宗lMenu岸.js"连"/com约mon/j筐s/ext旷sp/js毅/comp券enent养/KDTa苦bPane平lForC弯olumn备.js"根"/com有mon/j在s/ext羞sp/js晌/comp男enent申/KDTa隙bPane窄lLoad旷Scrip妥t.js"合并为:首"/com召mon/j究s/ext惹sp//K以D闪UxCom译penen膨t洪.js"煌"/com凉mon/j慎s/ext宽sp/js垄/menu恰/KDMe档nu.js坏"伞"/com瓜mon/j办s/ext眠sp/js块/menu榨/KDDa截teMen柳u.js"照"/com局mon/j胖s/ext雾sp/js原/menu际/KDDa续teIte面m.js"戚"/com醋mon/j安s/ext刺sp/js隶/menu比/KDDa乐tePic戴ker.j铺s"合并为:庆"/com汤mon/j现s/ext啦sp/KD掏UxMen犬u桑.js"级"/com酷mon/j敲s/ex罗tsp/j坝s/lay抗out/K江DCard堂Layou贼t.js"室"/com案mon/j弃s/ext常sp/js悄/layo音ut/KD赢Table已Layou毙t2.0.裹js"泊"/com比mon/j嗽s/ext姜sp/js艘/layo假ut/KD矛DivTa畏bleLa氧yout2锅.0.js能"合并为:顶"/com行mon/j霜s/ext扬sp/KD捐UxLay吸out砍.js"就合并js都庆是纯粹的将勾js文件内赴容拷贝到一害个大的js甲文件中。狱如果业务p揉ortle仍t(如流程炊中心)单独垃引入了这些习js,请修庄改引入文件躺,否则可能各会出现脚本淘错误矩。耀目前有两种季方式处理:佳一是引入合鞠并后的js植文件。例如胸之前引入了息KDTab鸟Panel下ForCo妈lumn.舍js适.请修改为染引入楼KDUxC挡ompen挖ent.j轻s晶。这样的一毁点影响是你勺只使用其中惰一个js内呜容,但是必促须把整个大节文件的内容花引入。糟二是在谎KDUxC劝ompen侦ent.j肃s与中拷贝出对啄应组件的j滩s代码,自转己新建一个亏js文件自诱行引入。币第啊3泡章恶Port别let业务演设置址Portl粒et业务设像置页面为独娘立的JSP升页面,Po戏rtlet凳开发者可在迷Portl站et业务设鸟置页面进行馆相关业务逻君辑的编写(元如保存用户牙的设置信息宋等)。拜Port听let樱业务设置页戚面分为盯两种类型:右(1)从定义期辈的Port齐let业务写设置页面机在此进行的险设置对全部祖Portl记et实例有舍效。厉(该设置位稼于:门户-惨>配置管理杰->Por获tlet管复理->设置轿->业务设倡置)绿图3-1依Portl野et定义期滚业务设置页傲面门(2)旨运行期戚的Port爸let业务赌设置页面皮在此进行的伐设置只对当胳前院Portl副et实例有斯效。乐(该设置位糠于:具体的肯某个Por却tlet实衡例->右上来角设置按钮辽->业务设精置)鸡衣图3-2拾Portl恶et运行期筒业务设置页嘴面侧Portl案et业务设穗置的两种页宝面猎(定义期和棵运行期)顷可以是同一匠个页面,也途可以是不同应的页面,取厘决于具体的炒业务需求。金参考实现:奏(糟“捡通知Por摆tlet插”印业务设置页麦面)劣s瑞erver武/吼deplo梯y驰/苦eas.e稀ar复/管cp_we衫b.war纺/造html感/庭portl漂et坊/聪newpr单ocess特cente截r耍/隔notic缴ePort狱letSe劫tting阅s.jsp歼3.1刑关联Por拉tlet业廉务设置页面佩由于Por猾tlet业吃务设置页面老是独立的页呢面,绍EAS门户欢框架对业务偷设置页面膜的胸具体患实现不作限间制和要求,灿由女各顶业务部门爆进行独立开冤发。伸门户框架炮仅负责关联封各业务部门匀独立开发的徒业务设置页重面,即根据烦关联信息(珍数据库中的柏数据,下文峡将介绍向数刺据库插入哪搬些数据悉)搭,判断残“披业务设置负”春按钮是否可谈用,当用户葱点击初“槽业务设置冲”宰按钮时,打跑开关联的业亿务设置页面原。湿假设你已经坐按照踩文档第2章胃中的步骤制岭作了一个P段ortle谊t,名称为厨“雕示例Por薪tlet窃”浇,Port动let的晃内容衬页面位于铁/html疤/port三let/e目xampl揉e/dem即oPort骄let.j新sp困,并且已经谈制作了两个信业务设置页环面,一个为匆定义期的P丹ortle轨t业务设置夺页面,位于晶/html达/port逮let/e反xampl躲e/dem衫oPort转letDe椒fSett途ing.j萝sp益,一个为运块行期的Po梁rtlet肤业务设置页册面,位于唇/html排/port碎let/e注xampl喂e/dem爆oPort配letIn罚sSett克ing.j蛾sp传。幕(1)赏执行以下K轮SQL脚本哑:脏INSER炼TINT烂OT_P迹ORTAL油_Port透letEx阶t(FID饺,FSho短wTitl济eArea晒,FTit府le_l2雀,FTit菌le_l3庙,FSho域wTitl谈eArea免Borde悟r,FSh递owCon械tentA里reaBo杠rder,庆FHeig餐ht,FB校izDef理Url,F漆BizIn职sUrl,位FAttr榴Confi往gurab腿le,FC绕reato雹rID,F业Creat掩eTime阻,FLas朱tUpda果teUse挑rID,F淘LastU掩pdate蹈Time,松FCont普rolUn当itID)窃VALU贺ES(零NEWBO陵SID('腔D谦9父493F疏71')俗,1,贿N'示例P坏ortle禽t'给,额N'示例P部ortle作t'矩,1,1,闻0,歉N'/ht芽ml/po粥rtlet求/exam醋ple/d昼emoPo矿rtlet印DefSe追tting检.jsp'觉,渠N'/ht慌ml/po昏rtlet喇/exam同ple/d烛emoPo荷rtlet聪InsSe窑tting项.jsp'责,1,'0丝00000泄00-00汉00-00车00-00材0烤0-000串00000蒜00001毕3B7DE沙7F陕',{ts猾'2023脖-10-0拿112:宋13:14讽'},'0列00000焦00-00限00-00伴00-00延00-00伪00000岗0000唉013B7准DE拴7F省',{ts剩'2023就-10-0椒112:祝13:14榴'},'0转00000案00-00搏00-00列00-00姑00-00仗00000物00000揭CCE7A固ED4')宰;朱说明与注意沙事项:光·就插入字段F惹ID的值请信务必使用函伸数岭NEWBO讽SID俩,其中油'秩D堂9493F烤71药'庆为Port末let着Ext各实体元数据故编码,该值所不能更改为葱其他值,否竿则程序获取勤Portl亦et信息时掩将出错。函于数桨NEWBO锤SID('梯D暑9493F凤71型')逮每次执行会优产生新的I搞D值,如果垒作为脚本提榆交,请注意倘修改为一个衣确定的ID泳值,且一定嫁要支持可重耍复升级。影·前字段FTi掠tle_l悟2和FTi姓tle_l茶3分别为该隙Portl炮et的默认矮简体中文名送称和繁体中遭文名称炕。砖繁体字段一佳定要使用繁葱体文字,否垮则和语言不举匹配。邪·绵字段FBi区zDefU慈rl的值为重Portl阿et定义期溉的业务设置食页面地址,愉字段FBi磨zInsU价rl的值为携Portl幼et运行期捏的业务设置涝页面地址。曲如果业务需杯求中,Po崭rtlet田在定义期没晌有业务设置丧项(瞎“梨业务设置叔”塞按钮俭为灰色不可凭用),则字度段FBiz待DefUr词l的值为空畜,同理,如脾果Port方let在运狡行期没有业闹务设置项,舍则字段FB遗izIns罪Url的值小为空。鄙例如算假设欧“堂示例Por犁tlet立”翠只允许用户车在运行期进胖行业务设置千(定义期不怜能进行业务讨设置)傍,则执行的诱K领SQL脚本貌如下:纱INSER助TINT此OT_P超ORTAL贿_Port毫letEx宰t(FID控,FSho眯wTitl孔eArea所,FTit强le_l2焰,FTit弃le_l3抗,FSho景wTitl架eArea荷Borde抱r,FSh窑owCon忘tentA时reaBo劳rder,冠FHe增ight,荣FBizD手efUrl践,FBiz瓜InsUr墓l,FAt报trCon听figur泉able,这FCrea赞torID书,FCre舱ateTi规me,FL青astUp真dateU率serID递,FLas垄tUpda跨teTim剑e,FCo榨ntrol播UnitI涂D)VA铸LUES离

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论