??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲人成网站影音先锋播放,香蕉大伊亚洲人在线观看,亚洲人成综合网站7777香蕉http://www.tkk7.com/hao-zhang-hi/J-Hi(http://www.j-hi.net)zh-cnSat, 10 May 2025 12:18:37 GMTSat, 10 May 2025 12:18:37 GMT60J-HiU下交流--实况http://www.tkk7.com/hao-zhang-hi/archive/2011/09/16/358842.html张昊张昊Fri, 16 Sep 2011 15:48:00 GMThttp://www.tkk7.com/hao-zhang-hi/archive/2011/09/16/358842.htmlhttp://www.tkk7.com/hao-zhang-hi/comments/358842.htmlhttp://www.tkk7.com/hao-zhang-hi/archive/2011/09/16/358842.html#Feedback2http://www.tkk7.com/hao-zhang-hi/comments/commentRss/358842.htmlhttp://www.tkk7.com/hao-zhang-hi/services/trackbacks/358842.html

http://developer.51cto.com/developer/51cto-salon-13/





视频Ҏ(gu)
《Java快速开发的分析与探索》[上](张昊Q?/a>
《Java快速开发的分析与探索》[下](张昊Q?br /> 《Java快速开发^C用》(肖金华)(j)
用户交流与问{环?/a>

推荐阅读


51CTO?sh)子杂志《开发月刊?/a>

51CTO开发频道推出《开发月刊》电(sh)子杂志。主要内Ҏ(gu)盖Java?NET、WEB开发、数据库和移动开发等{。从技术细节到目理Q方斚w面ؓ(f)开发者服务?/p>



往期回?/td>
 
51CTO技术沙龙之IDC挑选运l经验谈
51CTO技术沙龙之掌握|络量分析与系l监?/a>
51CTO技术沙龙之企业服务器安全攻与防
51CTO技术沙龙之Linuxpȝ安全
51CTO技术沙龙之解析中小企业|络q维
51CTO技术沙龙之Web开发前沿技术探索与实战
51CTO技术沙龙之大型|站PHP开发之?/a>
51CTO技术沙龙之 IT技术hQ茫茫职业h生\
51CTO技术沙龙之 如何快速定位黑客攻?/a>
51CTO技术沙龙之 关于企业安全q维的那些事?/a>
51CTO技术沙龙之 站在业务扩展的角度看Linuxq维技?/a>
51CTO技术沙龙之 从菜鸟到CTOQ你的目标需要管?/a>
51CTO技术沙龙之 两小时成为反挂马达h
51CTO技术沙龙之 全方位解析虚拟化
51CTO技术沙龙之 企业基础|络与核?j)服务搭?/a>
51CTO技术沙龙之 负蝲均衡2?/a>

沙龙D与PPT下蝲

51CTO技术沙龙第十三期ȝQJava快速开发之?/a>
?011q??日下?1CTO丑֊的第13?1CTO技术沙龙中Q有q请到Java开源^?#8212;—J-Hi的两位创始h张昊老师和肖金华老师。二位讲师分别从理论和实战来为大家介lJ-HiQ打开Java快速开发之路?a target="_blank" data-mce->查看
PPT下蝲Q《Java快速开发的分析与探索》(张昊Q?/a>
详细分析快速开发与传统开发方式在开发Ş式上的差异,两个模式所存在的风险及(qing)如何规避q些风险Qƈ对开发效率、成本及(qing)开发规范做出对比。最后阐qCؓ(f)什么快速开发将是以后Y件开发的势?PPT下蝲 | 视频下蝲
《Java快速开发^C用》(肖金华)(j)
主要介绍怎样架构你的互联|应用才能显得不是那么草根,Z弱关pȝ论的l构化数据存储与E序设计高性能的数据缓冲层让你的数据离CPU再近一些。如何定位应用的性能瓉以及(qing)p能优化的思\? 视频下蝲
 

本期讲师介绍

 
 
J-Hi快速开发^台团队核?j)成?张昊
软迅博技术发展有限公叔R席架构师Q开源J-Hi快速开发^台团队核?j)成员,q_目的主要发赯(g)与l织者?/td>
软迅博技术发展有限公叔R目ȝ 肖金?/a>
开源J-Hi快速开发^台团队核?j)成员,十一qY件开发经验,带领完成q多个大型项目。熟(zhn)保险及(qing)?sh)力行业Q曾LIT公司保险业务U架构师?/td>
 
 

相关Java专题


51CTO开发频道专访J-Hi快速开发^台团队核?j)成员张昊先生,向大家讲qJ-Hi快速开发^C创意到研发再C品的完整脉络和技术领域以?qing)对q大爱好者的一些徏议?/p>


 

2011q??日,甲骨文D行了(jin)生活的全球性活动,以庆(jin)即到来的Java 7推出。标准版Java SE 7是对JavaC֌和甲骨文对开发语a和技术持l承诺的一U肯定?/p>

  

沙龙现场照片


 
 
 
 
 
 
 
 
 
 
 





张昊 2011-09-16 23:48 发表评论
]]>
一ljava快速开发视?http://www.tkk7.com/hao-zhang-hi/archive/2011/09/09/358377.html张昊张昊Fri, 09 Sep 2011 08:26:00 GMThttp://www.tkk7.com/hao-zhang-hi/archive/2011/09/09/358377.htmlhttp://www.tkk7.com/hao-zhang-hi/comments/358377.htmlhttp://www.tkk7.com/hao-zhang-hi/archive/2011/09/09/358377.html#Feedback1http://www.tkk7.com/hao-zhang-hi/comments/commentRss/358377.htmlhttp://www.tkk7.com/hao-zhang-hi/services/trackbacks/358377.htmlhttp://weibo.com/javahi

张昊 2011-09-09 16:26 发表评论
]]>
J-Hi Lookup实现U联下拉的效?/title><link>http://www.tkk7.com/hao-zhang-hi/archive/2011/06/03/351704.html</link><dc:creator>张昊</dc:creator><author>张昊</author><pubDate>Fri, 03 Jun 2011 09:53:00 GMT</pubDate><guid>http://www.tkk7.com/hao-zhang-hi/archive/2011/06/03/351704.html</guid><wfw:comment>http://www.tkk7.com/hao-zhang-hi/comments/351704.html</wfw:comment><comments>http://www.tkk7.com/hao-zhang-hi/archive/2011/06/03/351704.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.tkk7.com/hao-zhang-hi/comments/commentRss/351704.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/hao-zhang-hi/services/trackbacks/351704.html</trackback:ping><description><![CDATA[<br /> <p style="margin-left: 21pt;"><strong><span style="font-family: 宋体;">描述</span></strong><span style="font-family: 宋体;">Q在</span>DWZ<span style="font-family: 宋体;">版中</span>lookup<span style="font-family: 宋体;">的处理机制与l典的完全不同,对于</span>lookup<span style="font-family: 宋体;">有两U展现Ş式,一U是通过点击</span>lookup<span style="font-family: 宋体;">图标弹出对话框后带回选中的|另一U是通过在文本框中输入相应信息从而实现联机式的查扑ָ回效果。从实现目的来看Q无非是?/span>lookup<span style="font-family: 宋体;">的实体的主键值带回到</span>hidden<span style="font-family: 宋体;">的一个元素中Q而其它值只是作为显C参考之用,与底层的数据库结构与数据库表无关。一个完整的</span>lookup<span style="font-family: 宋体;">由如?/span>html<span style="font-family: 宋体;">元素构成Q?/span>1<span style="font-family: 宋体;">Q一?/span>hidden<span style="font-family: 宋体;">用于保存带回实体主键?/span>ID<span style="font-family: 宋体;">|如果要实现缺省的</span>lookup<span style="font-family: 宋体;">qo(h)或排序可以相应的</span>pageInfo<span style="font-family: 宋体;">?/span>hidden<span style="font-family: 宋体;">元素Q具体实现方式的用例参见?/span>HowTo<span style="font-family: 宋体;">手册》;</span>2<span style="font-family: 宋体;">Q?/span>n<span style="font-family: 宋体;">?/span>text<span style="font-family: 宋体;">用于昄带回的多个数据带回项Q?span style="color: red;">注意</span>Q因为带回的数据与数据讉K层也是数据库表无关Q因此每?/span>text<span style="font-family: 宋体;">?/span>name<span style="font-family: 宋体;">都有一?/span><em><span style="font-size: 10pt; font-family: "Courier New"; color: #2a00ff;">hi_</span></em><span style="font-family: 宋体;">作ؓ(f)前缀Q;</span>3<span style="font-family: 宋体;">Q一?/span>lookup<span style="font-family: 宋体;">有且只有一个主带回,只有d回项的文本框是可~辑的ƈ且只有主带回会(x)?/span>lookup<span style="font-family: 宋体;">图标也就?/span>html<span style="font-family: 宋体;">的中?/span>a<span style="font-family: 宋体;">元素?/span></p> <table style="border-collapse: collapse; border: medium none;" border="1" cellpadding="0" cellspacing="0"> <tbody><tr> <td style="width: 131.4pt; border: 1pt solid silver; background: none repeat scroll 0% 0% #d9d9d9; padding: 0cm 5.4pt;" valign="top" width="175"> <p align="center"><strong><span style="font-family: 宋体;">扩展属性名</span></strong></p> </td> <td colspan="2" style="width: 303.85pt; border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: silver silver silver -moz-use-text-color; background: none repeat scroll 0% 0% #d9d9d9; padding: 0cm 5.4pt;" valign="top" width="405"> <p align="center"><strong><span style="font-family: 宋体;">?/span></strong><strong> </strong><strong><span style="font-family: 宋体;">q?/span></strong></p> </td> </tr> <tr> <td style="width: 131.4pt; border-width: medium 1pt 1pt; border-style: none solid solid; border-color: -moz-use-text-color silver silver; padding: 0cm 5.4pt;" valign="top" width="175"> <p><span style="font-size: 10pt; font-family: "Courier New"; color: black;">lookupGroup</span></p> </td> <td colspan="2" style="width: 303.85pt; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color silver silver -moz-use-text-color; padding: 0cm 5.4pt;" valign="top" width="405"> <p><span style="font-size: 9pt;">lookup</span><span style="font-size: 9pt; font-family: 宋体;">l可以理解ؓ(f)当前实体的名字,如果当前</span><span style="font-size: 9pt;">lookup</span><span style="font-size: 9pt; font-family: 宋体;">lg是主实体中,?/span><span style="font-size: 9pt;">lookupGroup</span><span style="font-size: 9pt; font-family: 宋体;">是实体名,如果当前</span><span style="font-size: 9pt;">lookup</span><span style="font-size: 9pt; font-family: 宋体;">lg在从实体Q也是明细表的</span><span style="font-size: 9pt;">lookup</span><span style="font-size: 9pt; font-family: 宋体;">Q中Q则</span><span style="font-size: 9pt;">lookupGroup</span><span style="font-size: 9pt; font-family: 宋体;">是明细的集合属性名</span></p> </td> </tr> <tr> <td style="width: 131.4pt; border-width: medium 1pt 1pt; border-style: none solid solid; border-color: -moz-use-text-color silver silver; padding: 0cm 5.4pt;" valign="top" width="175"> <p><span style="font-size: 10pt; font-family: "Courier New"; color: black;">lookupName</span></p> </td> <td colspan="2" style="width: 303.85pt; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color silver silver -moz-use-text-color; padding: 0cm 5.4pt;" valign="top" width="405"> <p><span style="font-size: 9pt;">lookup</span><span style="font-size: 9pt; font-family: 宋体;">名可以理解ؓ(f)当前</span><span style="font-size: 9pt;">lookup</span><span style="font-size: 9pt; font-family: 宋体;">实体的属性名。从整体?/span><span style="font-size: 9pt;">DWZ</span><span style="font-size: 9pt; font-family: 宋体;">框架来分析,实际上所有的</span><span style="font-size: 9pt;">tab</span><span style="font-size: 9pt; font-family: 宋体;">都在一?/span><span style="font-size: 9pt;">IE</span><span style="font-size: 9pt; font-family: 宋体;">H口Q也是?/span><span style="font-size: 9pt;">JS</span><span style="font-size: 9pt; font-family: 宋体;">文g在打开览器只?x)加载一ơ。这׃生了(jin)必须要保证每一?/span><span style="font-size: 9pt;">html</span><span style="font-size: 9pt; font-family: 宋体;">元素的唯一性,即是在不同?/span><span style="font-size: 9pt;">tab</span><span style="font-size: 9pt; font-family: 宋体;">下也是如此。对?/span><span style="font-size: 9pt;">lookup</span><span style="font-size: 9pt; font-family: 宋体;">来说Q是通过</span><span style="font-size: 9pt;">lookupGroup+lookupName</span><span style="font-size: 9pt; font-family: 宋体;">来确定元素的唯一性的?/span></p> </td> </tr> <tr> <td style="width: 131.4pt; border-width: medium 1pt 1pt; border-style: none solid solid; border-color: -moz-use-text-color silver silver; padding: 0cm 5.4pt;" valign="top" width="175"> <p><span style="font-size: 10pt; font-family: "Courier New"; color: black;">suggestClass</span></p> </td> <td rowspan="2" style="width: 72pt; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color silver silver -moz-use-text-color; padding: 0cm 5.4pt;" valign="top" width="96"> <p><span style="font-size: 9pt; font-family: 宋体;">d回项才会(x)有该属性,实现联想查找带回</span></p> </td> <td style="width: 231.85pt; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color silver silver -moz-use-text-color; padding: 0cm 5.4pt;" valign="top" width="309"> <p><span style="font-size: 9pt; font-family: 宋体;">?/span><span style="font-size: 9pt;">lookup</span><span style="font-size: 9pt; font-family: 宋体;">实体?/span><span style="font-size: 9pt;">POJO</span><span style="font-size: 9pt; font-family: 宋体;">cȝ全限定名</span></p> </td> </tr> <tr> <td style="width: 131.4pt; border-width: medium 1pt 1pt; border-style: none solid solid; border-color: -moz-use-text-color silver silver; padding: 0cm 5.4pt;" valign="top" width="175"> <p><span style="font-size: 10pt; font-family: "Courier New"; color: black;">searchFields</span></p> </td> <td style="width: 231.85pt; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color silver silver -moz-use-text-color; padding: 0cm 5.4pt;" valign="top" width="309"> <p><span style="font-size: 9pt; font-family: 宋体;">查询qo(h)的属性名列表Q以逗号分隔。例如带?/span><span style="font-size: 9pt;">HiUser</span><span style="font-size: 9pt; font-family: 宋体;">Q该属性的gؓ(f)</span><span style="font-size: 9pt;">”fullName,userNum”</span><span style="font-size: 9pt; font-family: 宋体;">Q在文本框中</span><span style="font-size: 9pt;">001</span><span style="font-size: 9pt; font-family: 宋体;">则^C(x)查询姓名或者是~号?/span><span style="font-size: 9pt;">001</span><span style="font-size: 9pt; font-family: 宋体;">的所有用?/span></p> </td> </tr> <tr> <td style="width: 131.4pt; border-width: medium 1pt 1pt; border-style: none solid solid; border-color: -moz-use-text-color silver silver; padding: 0cm 5.4pt;" valign="top" width="175"> <p><span style="font-size: 10pt; font-family: "Courier New"; color: black;">callback</span></p> </td> <td colspan="2" style="width: 303.85pt; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color silver silver -moz-use-text-color; padding: 0cm 5.4pt;" valign="top" width="405"> <p><span style="font-size: 9pt; font-family: 宋体;">回调Ҏ(gu)名,在查扑ָ回值后pȝ?x)回调该属性的值的Ҏ(gu)Q以实现(zhn)对带回后的Ҏ(gu)处理。例?/span><span style="font-size: 9pt;">callback=fun</span><span style="font-size: 9pt; font-family: 宋体;">Q那么在带回值后pȝ?x)自动调?/span><span style="font-size: 9pt;">fun</span><span style="font-size: 9pt; font-family: 宋体;">Ҏ(gu)Qƈ?x)自动传入两个参?/span><span style="font-size: 9pt;">fun(json,index)</span><span style="font-size: 9pt; font-family: 宋体;">Q其?/span><span style="font-size: 9pt;">json</span><span style="font-size: 9pt; font-family: 宋体;">Q是带回的完?/span><span style="font-size: 9pt;">json</span><span style="font-size: 9pt; font-family: 宋体;">对象Q?/span><span style="font-size: 9pt;">index</span><span style="font-size: 9pt; font-family: 宋体;">Q是索引|主要用于明细的带回时要提供是W几条明l记?/span></p> </td> </tr> </tbody></table> <p> </p> <p style="margin-left: 21pt;"><strong><span style="font-size: 10pt; font-family: 宋体; color: black;">场景描述</span></strong><span style="font-size: 10pt; font-family: 宋体; color: black;">Q一个会(x)员编辑页面要指定该会(x)员所在的省䆾、城?jng)、地区,要求在选择省䆾后会(x)自动qo(h)该省份的城市(jng)Q地Z此类推?/span></p> <p style="margin-left: 21pt;" align="center"><span style="font-size: 10pt; font-family: "Courier New"; color: black;"><img alt="" src="http://www.tkk7.com/images/blogjava_net/hao-zhang-hi/lookup.jpg" width="375" height="319" /></span></p> <p><span>       </span><span style="font-size: 10pt; font-family: 宋体; color: black;">以下所有步骤只是修?/span><em><span style="font-size: 10pt; font-family: "Courier New"; color: #2a00ff;">OrganizationEdit.jsp</span></em><span style="font-size: 10pt; font-family: 宋体; color: black;">文gQ即?/span></p> <p style="text-indent: 21pt;"><strong><span style="font-size: 10pt; font-family: 宋体; color: black;">步骤一</span></strong><span style="font-size: 10pt; font-family: 宋体; color: black;">、ؓ(f)省䆾的主带回加</span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">callback</span><span style="font-size: 10pt; font-family: 宋体; color: black;">回调Ҏ(gu)</span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">,</span><span style="font-size: 10pt; font-family: 宋体; color: black;">q在实现?/span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">js</span><span style="font-size: 10pt; font-family: 宋体; color: black;">Ҏ(gu)</span></p> <p style="text-indent: 21pt;"><span style="font-size: 10pt; font-family: "Courier New"; color: teal;"><</span><span style="font-size: 10pt; font-family: "Courier New"; color: #3f7f7f;">input</span><span style="font-size: 10pt; font-family: "Courier New";"> <span style="color: #7f007f;">type</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">"text"</span></em> <span style="color: #7f007f;">class</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">"textInput"</span></em> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">"organization.hi_province.name"</span></em> <span style="color: #7f007f;">value</span><span style="color: black;">=</span>"<span style="color: black;">${organization.province.name}</span>" <u><span style="color: #7f007f;">callback</span></u><span style="color: black;">=</span><em><span style="color: #2a00ff;">"processProvince" </span></em></span></p> <p align="left"><span style="font-size: 10pt; font-family: "Courier New"; color: black;">    </span><strong><span style="font-size: 10pt; font-family: "Courier New"; color: #7f0055;">function</span></strong><span style="font-size: 10pt; font-family: "Courier New"; color: black;"> processProvince(json){</span></p> <p align="left"><span style="font-size: 10pt; font-family: "Courier New"; color: black;">       document.getElementById(</span><span style="font-size: 10pt; font-family: "Courier New"; color: #2a00ff;">"pageInfo.province.f_id"</span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">).value = json.id;</span></p> <p style="text-indent: 21pt;"><span style="font-size: 10pt; font-family: "Courier New"; color: black;">    } //</span><span style="font-size: 10pt; font-family: 宋体; color: black;">该方法的目的是在选择某个省䆾后将该省份的</span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">ID</span><span style="font-size: 10pt; font-family: 宋体; color: black;">值放到指定的</span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">hidden</span><span style="font-size: 10pt; font-family: 宋体; color: black;">元素?/span></p> <p style="text-indent: 21pt;"><strong><span style="font-size: 10pt; font-family: 宋体; color: black;">步骤?/span></strong><span style="font-size: 10pt; font-family: 宋体; color: black;">、ؓ(f)城市(jng)加一个用于过滤的</span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">hidden</span><span style="font-size: 10pt; font-family: 宋体; color: black;">元素</span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">,</span><span style="font-size: 10pt; font-family: 宋体; color: red;">注意</span><span style="font-size: 10pt; font-family: 宋体; color: black;">Q?/span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">processProvince()</span><span style="font-size: 10pt; font-family: 宋体; color: black;">Ҏ(gu)中的赋D句就是该</span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">hidden</span><span style="font-size: 10pt; font-family: 宋体; color: black;">元素</span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">;</span><span style="font-size: 10pt; font-family: 宋体; color: black;">用于qo(h)?/span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">name</span><span style="font-size: 10pt; font-family: 宋体; color: black;">必须?/span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">PageInfo</span><span style="font-size: 10pt; font-family: 宋体; color: black;">的具体类相对应;必须要指?/span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">lookupGroup</span><span style="font-size: 10pt; font-family: 宋体; color: black;">?/span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">lookupName</span></p> <p><span style="font-size: 10pt; font-family: "Courier New"; color: teal;"><</span><span style="font-size: 10pt; font-family: "Courier New"; color: #3f7f7f;">input</span><span style="font-size: 10pt; font-family: "Courier New";"> <span style="color: #7f007f;">type</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">"hidden" </span></em><span style="color: #7f007f;">lookupGroup</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">"organization"</span></em> <span style="color: #7f007f;">lookupName</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">"city"</span></em> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">"pageInfo.province.f_id"</span></em> <span style="color: #7f007f;">id</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">"pageInfo.province.f_id"</span></em> <span style="color: #7f007f;">value</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">""</span></em><span style="color: teal;">/></span></span></p> <p><span style="font-size: 10pt; font-family: "Courier New"; color: teal;">    </span><strong><span style="font-size: 10pt; font-family: 宋体; color: black;">步骤?/span></strong><span style="font-size: 10pt; font-family: 宋体; color: black;">、ؓ(f)城市(jng)的主带回加</span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">callback</span><span style="font-size: 10pt; font-family: 宋体; color: black;">回调Ҏ(gu)</span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">,</span><span style="font-size: 10pt; font-family: 宋体; color: black;">q在实现?/span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">js</span><span style="font-size: 10pt; font-family: 宋体; color: black;">Ҏ(gu)</span></p> <p style="text-indent: 21pt;"><span style="font-size: 10pt; font-family: "Courier New"; color: teal;"><</span><span style="font-size: 10pt; font-family: "Courier New"; color: #3f7f7f;">input</span><span style="font-size: 10pt; font-family: "Courier New";"> <span style="color: #7f007f;">type</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">"text"</span></em> <span style="color: #7f007f;">class</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">"textInput"</span></em> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">"organization.hi_city.name"</span></em> <span style="color: #7f007f;">value</span><span style="color: black;">=</span>"<span style="color: black;">${organization.city.name}</span>" <u><span style="color: #7f007f;">callback</span></u><span style="color: black;">=</span><em><span style="color: #2a00ff;">"processCity"</span></em></span></p> <p align="left"><span style="font-size: 10pt; font-family: "Courier New"; color: black;">    </span><strong><span style="font-size: 10pt; font-family: "Courier New"; color: #7f0055;">function</span></strong><span style="font-size: 10pt; font-family: "Courier New"; color: black;"> processCity(json){</span></p> <p align="left"><span style="font-size: 10pt; font-family: "Courier New"; color: black;">       document.getElementById(</span><span style="font-size: 10pt; font-family: "Courier New"; color: #2a00ff;">"pageInfo.city.f_id"</span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">).value = json.id;</span></p> <p style="text-indent: 21pt;"><span style="font-size: 10pt; font-family: "Courier New"; color: black;">}</span></p> <p style="text-indent: 21pt;"><strong><span style="font-size: 10pt; font-family: 宋体; color: black;">步骤?/span></strong><span style="font-size: 10pt; font-family: 宋体; color: black;">、ؓ(f)地区加一个用于过滤的</span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">hidden</span><span style="font-size: 10pt; font-family: 宋体; color: black;">元素</span></p> <p style="text-indent: 21pt;"><span style="font-size: 10pt; font-family: "Courier New"; color: teal;"><</span><span style="font-size: 10pt; font-family: "Courier New"; color: #3f7f7f;">input</span><span style="font-size: 10pt; font-family: "Courier New";"> <span style="color: #7f007f;">type</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">"hidden"</span></em> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">"pageInfo.city.f_id"</span></em> <span style="color: #7f007f;">id</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">"pageInfo.city.f_id"</span></em> <u><span style="color: #7f007f;">lookupGroup</span></u><span style="color: black;">=</span><em><span style="color: #2a00ff;">"organization"</span></em> <u><span style="color: #7f007f;">lookupName</span></u><span style="color: black;">=</span><em><span style="color: #2a00ff;">"region"</span></em> <span style="color: #7f007f;">value</span><span style="color: black;">=</span><em><span style="color: #2a00ff;">""</span></em><span style="color: teal;">/></span></span></p> <p style="text-indent: 21pt;"><strong><span style="font-size: 10pt; font-family: 宋体; color: black;">ȝ</span></strong><span style="font-size: 10pt; font-family: 宋体; color: black;">Q联下拉实际上?/span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">lookup</span><span style="font-size: 10pt; font-family: 宋体; color: black;">的一个变UŞ式,主要的思想是ؓ(f)你要U联的下拉的</span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">lookup</span><span style="font-size: 10pt; font-family: 宋体; color: black;">加入qo(h),例如在城?jng)加一个省份的qo(h),在选择省䆾时后Q会(x)通过回调Ҏ(gu)这个过滤项的值存到该qo(h)中。这样逐qo(h)实C(jin)U联下拉的效?/span><span style="font-size: 10pt; font-family: "Courier New"; color: black;">.</span></p> <div><a href="../../Files/hao-zhang-hi/OrganizationEdit.rar">/Files/hao-zhang-hi/OrganizationEdit.rar</a></div><img src ="http://www.tkk7.com/hao-zhang-hi/aggbug/351704.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/hao-zhang-hi/" target="_blank">张昊</a> 2011-06-03 17:53 <a href="http://www.tkk7.com/hao-zhang-hi/archive/2011/06/03/351704.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J-Hi实体与数据库表的兌关系http://www.tkk7.com/hao-zhang-hi/archive/2011/05/31/351390.html张昊张昊Tue, 31 May 2011 02:34:00 GMThttp://www.tkk7.com/hao-zhang-hi/archive/2011/05/31/351390.htmlhttp://www.tkk7.com/hao-zhang-hi/comments/351390.htmlhttp://www.tkk7.com/hao-zhang-hi/archive/2011/05/31/351390.html#Feedback0http://www.tkk7.com/hao-zhang-hi/comments/commentRss/351390.htmlhttp://www.tkk7.com/hao-zhang-hi/services/trackbacks/351390.html       大家可以单将J-Hi建模工具理解为数据库?/span>E-R图,每个实体对应一个数据库的表Q而实体中每个属性就对应数据库表的一个字Dc(din)那么实体与实体之间的关pL表与表的关系又是如何描述的呢Q?/span>

       对于数据库表的关pd体可分ؓ(f)Q如下几UŞ?/span>

       many-to-one:相当于一个数据库表的字段Q外键)(j)对应另一张数据库表的主键Q对?/span>J-Hi来说Q就是一?/span>lookupQ查扑ָ回)(j)。即一个实体中的某个属性是lookupcdQ这个属性会(x)lookup另一个实体。对lookup定义的操作步骤请参见“应用开发视?#8221;。页面中的展CŞ式,例如你有一个报销单,?/span>lookup用户Q那么^台就?x)自动将用户的名U带回来Qƈ在数据库中将用户?/span>IDg存到报销单表的相应字D中?/span>

 

       one-to-many:相当于一个数据库表下面会(x)有一个或多个明细表,例如一个报销单是主表而报销单明l是明细表。在数据库端的实现Ş式ؓ(f)Q在明细表中有一个主表的外键ID字段。在J-Hi中我们称之ؓ(f)引用Q具体操作见联机帮助

 

       one-to-one:所谓一对一的关pd数据库上的理解ؓ(f)Q?/span>B表每加一条记?/span>A表也?x)随着增加一条记录,?/span>J-Hi中的表现形式为实体?/span>

       对于实体的承,不只是简单的?/span>one-to-one关系Q实体的l承q包括所有的javacȝl承关系Q?/span>JSP面的整合等{?/span>

      

       many-to-many:多对多是一U复杂的表关p,J-Hi是通过中间q渡表来实现q种多对多的关系Q例如一个项目可以有多个成员Q而一个成员又有可能在多个目中,建模的图?/span>



张昊 2011-05-31 10:34 发表评论
]]>
J-Hi 输出json数据到前台的例子http://www.tkk7.com/hao-zhang-hi/archive/2011/05/29/351289.html张昊张昊Sun, 29 May 2011 14:21:00 GMThttp://www.tkk7.com/hao-zhang-hi/archive/2011/05/29/351289.htmlhttp://www.tkk7.com/hao-zhang-hi/comments/351289.htmlhttp://www.tkk7.com/hao-zhang-hi/archive/2011/05/29/351289.html#Feedback0http://www.tkk7.com/hao-zhang-hi/comments/commentRss/351289.htmlhttp://www.tkk7.com/hao-zhang-hi/services/trackbacks/351289.html1Q前台页面:(x)

//自定义一个回调函?/span>ajaxDone

<form action="expert_BaseInformationSave.action?navTabId=expert_BaseInformationList&callbackType=closeCurrent&ajax=1"

method="post" class="pageForm required-validate" onsubmit="return validateCallback(this, ajaxDone)">

 

//回调函数

<script type="text/javascript">

       function ajaxDone(json)

       {

              alert(json.expert.name);

       }

</script>

 

2Q后C码:(x)

public class Expert_BaseInformationSaveAction extends BaseAction implements SynchronizationData{

       private Expert_BaseInformation expert_BaseInformation;

       private JSONObject json;

 

       public String execute() throws Exception {

              Expert_BaseInformationManager expert_BaseInformationMgr = (Expert_BaseInformationManager)

SpringContextHolder.getBean(Expert_BaseInformation.class);

              if(super.perExecute(expert_BaseInformation)!= null) return returnCommand();

              expert_BaseInformationMgr.saveExpert_BaseInformation(expert_BaseInformation);

              super.postExecute(expert_BaseInformation);

              json = new JSONObject("expert", expert_BaseInformation, "name, gender, unit");

             

              return "json";

       }

      

       public Expert_BaseInformation getExpert_BaseInformation() {

              return expert_BaseInformation;

       }

 

       public void setExpert_BaseInformation(Expert_BaseInformation expert_BaseInformation) {

              this.expert_BaseInformation = expert_BaseInformation;

       }

 

       public JSONObject getJson() {

              return json;

       }     

}

 

注意Q?/span>action中必d?/span>public JSONObject getJson() {

              return json;

       }Q?/span> 否则前台无法获取json数据?/span>



                                     注:(x)该文档由J-Hi爱好?W笨"提供,他的QQ号ؓ(f)289542213Q欢q大家与他在技术上多多交流




张昊 2011-05-29 22:21 发表评论
]]>
j-hiq_?wi)Ş之二Q节点过滤实?http://www.tkk7.com/hao-zhang-hi/archive/2011/05/19/350646.html张昊张昊Thu, 19 May 2011 14:04:00 GMThttp://www.tkk7.com/hao-zhang-hi/archive/2011/05/19/350646.htmlhttp://www.tkk7.com/hao-zhang-hi/comments/350646.htmlhttp://www.tkk7.com/hao-zhang-hi/archive/2011/05/19/350646.html#Feedback0http://www.tkk7.com/hao-zhang-hi/comments/commentRss/350646.htmlhttp://www.tkk7.com/hao-zhang-hi/services/trackbacks/350646.html本文主要讲解J-hi中树(wi)的过滤。以员工部门?wi)?f)例?/span>

要求在点?yn)L个员工时Q能够查看到该员工所在的部门?/span>

 

 

           ?/span>1-部门?/span>

下图2是所有员工列表:(x)

?/span>-2

当点ȝ五时Q显C王五所在的部门l构?wi)如?/span>3?/span>

      ?/span>-3

主要代码部分Q?/span>

Q?/span>?/span>Jsp链接代码:(x)

<a

href="tree.action?menuName=orgList&orgId=${item.org.id}" target="dialog">${item.org.orgName}</a>

注意Q?/span>orgId是动态传入的参数Q这里指该员工所在的部门~号?/span>

2、在himenu-config.xml中配|部门树(wi)的后面加上这么一D?/span>

<void property="filter">

   <string>org.cis.filter.orgCollectionProcessor</string>

 </void>

注意:string标签内的是写qo(h)数据的类?/span>Ҏ(gu)(wi)的数据进行过滤,提供两种接口方式Ҏ(gu)据进行过?/span> MenuFilterProcessor 在获取数据之前填加过滤器;MenuCollectionProcessor 在获取数据之后再Ҏ(gu)据做整理.具体Ҏ(gu)查看java-doc?/span>API?/span>

而例子的orgCollectionProcessorcM码:(x)

public class orgCollectionProcessor implements MenuCollectionProcessor {

 

    public Collection getCollection(Collection coll, Map<String, String> map) {

       // TODO Auto-generated method stub

       //coll - 当前节点下一U节点的数据集合

        //map 动态的传入数据,?/span>map的Ş?/span>

       //传入一个员工的所在的部门Id,q回该员工所在的部门l构?/span>

       int orgId=Integer.parseInt(map.get("orgId").toString());

       for (Iterator iterator = coll.iterator(); iterator.hasNext();) {

           Object obj = (Object) iterator.next();       

           if(obj instanceof HiOrg){

              HiOrg hiorg = (HiOrg)obj;             

              if(hiorg.getId()!=orgId) {

                  iterator.remove();

                  coll.remove(obj);

              }

           }

       }

       return coll;

    }  

}


                                     注:(x)该文档由J-Hi爱好?无可"提供,他的QQ号ؓ(f)924372739Q欢q大家与他在技术上多多交流




张昊 2011-05-19 22:04 发表评论
]]>
j-hiq_?wi)Ş之一Q带回的实现)http://www.tkk7.com/hao-zhang-hi/archive/2011/05/12/350046.html张昊张昊Wed, 11 May 2011 16:58:00 GMThttp://www.tkk7.com/hao-zhang-hi/archive/2011/05/12/350046.htmlhttp://www.tkk7.com/hao-zhang-hi/comments/350046.htmlhttp://www.tkk7.com/hao-zhang-hi/archive/2011/05/12/350046.html#Feedback0http://www.tkk7.com/hao-zhang-hi/comments/commentRss/350046.htmlhttp://www.tkk7.com/hao-zhang-hi/services/trackbacks/350046.html?wi)Ş菜单能很好的呈现菜单之前的从属关系Q结构清晰明?jin)?/span>J-hiq_提供?jin)自定义树(wi)Ş菜单的功能,通过单的配置卛_实现?/span>

本文主要介绍通过?wi)Ş菜单选择带回节点值的实现Ҏ(gu)。以选择带回行政区划位置Z?/span>

数据库表设计Q?/span>

默认带回选择界面Q?/span>

通过jhi自动生成代码的功能,对于lookup xzqhwz的字D默认是如上带回面Q显然ƈ不能表现行政区划位置之间的主从关pR?/span>

?wi)Ş带回面Q?/span>

而如果实现如下页面的展示Q将?x)清晰方便许多?/span>

双击卛_带回节点Q也可通过配置带回节点的各U父节点?/span>

下面是配|的Ҏ(gu)Q?/span>

配置Ҏ(gu)Q?/span>

修改xml

修改C:"Program"hi-studio"eclipse"workspace"earch5"web"WEB-INF"config"himenu-config.xml

在代码末:(x)

</object>

</java>

之前插入Q?/span>(注意修改其中参数)

 <void method="put">

   <string>zdtree</string>

   <object class="org.hi.base.menu.strutsmenu.WebDynamicMenuDefine">

    <void property="keymap">

     <object class="java.util.HashMap">

      <void method="put">

       <string>id</string>

       <string>parentxzqhwz</string>

      </void>

     </object>

    </void>

    <void property="parent">

     <string>id</string>

    </void>

    <void property="child">

     <string>parentxzqhwz</string>

    </void>

    <void property="childValue">

     <int>0</int>

<!

新版?/span>jhi应ؓ(f):<string>0</string>

> 

    </void>

    <void property="menuName">

     <string>zdtree</string>

    </void>

    <void property="beanName">

     <string>org.hi.zdtree.model.Xzqhwz</string>

    </void>

    <void property="submenuName">

     <string>zdtree</string>

    </void>

    <void property="title">

     <string>行政区划位置</string>

    </void>

    <void property="titleField">

     <string>xzqhwz</string>

    </void>

    <void property="needShow">

     <boolean>true</boolean>

    </void>

    <void property="javascript">

     <string>

    function backAgent(id,orgName){

if(opener.document.getElementById('yzjbxx.xzqhwz')!=null){

           opener.document.getElementById('yzjbxx.xzqhwz').value=orgName;

           }

<!带回到相应的面的相应文本框?/span>

       else{ opener.document.getElementById('xzqhwz.pxzqhwz').value=orgName;

           opener.document.getElementById('xzqhwz.parentxzqhwz.id').value=id;

           window.close();

}

       }

     </string>

    </void>

    <void property="action">

     <string>{js}backAgent([#id],"'[#xzqhwz]"');</string>

<!在树(wi)型结构上通过双击一个节点,获取带回该节点的各上节?/span>

<string>{js}backAgent([#id],"'[#parentxzqhwz.parentxzqhwz.parentxzqhwz.xzqhwz][#parentxzqhwz.parentxzqhwz.xzqhwz][#parentxzqhwz.xzqhwz][#xzqhwz]"');</string>

> 

    </void>

   </object>

 </void>

修改XzqhwzEdit.jsp

?/span>C:"Program"hi-studio"eclipse"workspace"earch5"web"zdtree"XzqhwzEdit.jsp?/span>

onclick="xzqhwz_lookupPOP('parentxzqhwz')"

改ؓ(f)Q?/span>

onclick="window.open('/tree.action?menuName=zdtree','部门','width=300,height=500,left=10,top=20,location=no,status=no')"

q样Q到Xzqhwz的页面,点击父节点的带回按钮卛_看到效果Q同?/span>lookup?/span>xzqhwz字段的地方也修改Edit.jsp面?/span>onclick动作p啦?/span>



该文档是对J-Hi?wi)Ş的入门介绍QJ-Hi的树(wi)功能q有Q节点的qo(h)Qlazy加蝲Q一个节点可以多个图标、复选框效果Q多个实体组合Ş成一|(wi)Q我们将在以后l讲?/span>


                                     注:(x)该文档由J-Hi爱好?冯思豪"提供,他的QQ号ؓ(f)382600911Q欢q大家与他在技术上多多交流



张昊 2011-05-12 00:58 发表评论
]]>
J-Hi的发布模式到底媄(jing)响了(jin)哪些信息http://www.tkk7.com/hao-zhang-hi/archive/2011/05/08/349796.html张昊张昊Sun, 08 May 2011 14:12:00 GMThttp://www.tkk7.com/hao-zhang-hi/archive/2011/05/08/349796.htmlhttp://www.tkk7.com/hao-zhang-hi/comments/349796.htmlhttp://www.tkk7.com/hao-zhang-hi/archive/2011/05/08/349796.html#Feedback0http://www.tkk7.com/hao-zhang-hi/comments/commentRss/349796.htmlhttp://www.tkk7.com/hao-zhang-hi/services/trackbacks/349796.html
hi.depolyment.published=true
    下面让我们就q个开关项做如下分析,如果gؓ(f)true,也就是发布模式,它到底会(x)影响哪些东西Q?br />
信息内容
   1Q菜单中“权限”?#8220;权限资源”不在显C,因ؓ(f)一旦将做好的项目发布后Q这些信息是不能让客L(fng)护的?br />    2Q菜单中“触发?#8221;?#8220;消息理”不可见Q因Z旦定时服务设定好Q一般来说客户很会(x)调整Q即使是调整也应该是由开发h员来调整触发的周期与频率。对于消息管理也是一栗?br />    3) 整个“国际?#8221;菜单全部不昄Q这其中包括“多语a参数”?#8220;语言~码”?#8220;时区”Q原因这些内部均应该在开发过E中信息内容一q编辑完成。比如有一个语a~码p有一套多语言参数与之对应Q因些一旦系l上U,所有国际化部分的维护功能也应该同时完成?br />    4Q?#8220;应用配置”列表中,“删除”图标不再显C,因ؓ(f)如果pȝ上线Q系l中的一些基配置Ҏ(gu)不能删除Q而只能更改的

对于q个功能的控Ӟ是在main.jsp中,加入一个变量,代码如下
<%// 是否已发布的开?其目的是如果为true则关闭那些对l端用户不可见的功能按钮 %>
<ws:set name="published" value="@org.hi.framework.HiConfigHolder@getPublished()" />
大家以后在自己采用J-Hi开发的pȝ中也可以采用该方式来控制面Q这样就可以做到即不影响开发,而在目提交l用h同样保证某些只在开发时才能用到的按钮或功能Q只要改变一个开兛_可以控制?nbsp;

安全
   如果采用?jin)发布模式后Q页面提交的URL会(x)被加密,而开发模式URL则是以明文显C,开兛_试前后URL的效果如下:(x)
http://localhost:8080/hiUserEdit.action?hiUser.id=1
http://localhost:8080/hiUserEdit.action?cf4a9619dd97fc2689fb63048237404f
   由此可以看出URL问号后的参数部分全部通过?jin)加密处理,q样使?zhn)做出的系l更安全Q通过使别人URL分析不出你要获取的信息参与也推导不出pȝ的结?br />
效率
   1Q如果是发布模式QDWZ版的所有js文g采用压~的文gQ而非一个一个的L文gQ这L(fng)l的传输的内容会(x)更少Q具体的方式参见styles.jsp文g
   2Q如果是发布模式,pȝ在启动时一ơ性加?strong>枚D实体?strong>枚D?/strong>?strong>多语a参数?strong>应用配置q些帔R性的信息q入~存Q在取这些信息时pȝ?x)自动从~冲中取而ƈ非每都要查询数据库。D例来_(d)性别是一个下拉的枚DQ如果是发布模式只直接从~冲Z取数据,而如果是开发模式它?yu)׃?x)L据库中取数据Q如果是一个h员列表,那么有几个要昄枚D的地方就要去数据库取几次。因此开发模式的q行效率要远q低于发布模式,但开发模式更有实效性,只要数据有Q何变化都可以实体的反应出来,即是在同一个事务中Q而发布模式只能在一个事务完成之后再能做数据同步处理Q即内存与数据库之间的数据同步)(j)


张昊 2011-05-08 22:12 发表评论
]]>
J-Hi与DWZ强强联合共推J-Hi4DWZ版发?/title><link>http://www.tkk7.com/hao-zhang-hi/archive/2011/05/04/349495.html</link><dc:creator>张昊</dc:creator><author>张昊</author><pubDate>Wed, 04 May 2011 07:18:00 GMT</pubDate><guid>http://www.tkk7.com/hao-zhang-hi/archive/2011/05/04/349495.html</guid><wfw:comment>http://www.tkk7.com/hao-zhang-hi/comments/349495.html</wfw:comment><comments>http://www.tkk7.com/hao-zhang-hi/archive/2011/05/04/349495.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.tkk7.com/hao-zhang-hi/comments/commentRss/349495.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/hao-zhang-hi/services/trackbacks/349495.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="text-align: center;" align="center"><strong><span style="font-size: 14pt;" lang="EN-US"><br /> </span></strong><strong></strong><strong></strong></p> <p class="MsoNormal"><span lang="EN-US">J-Hi</span><span style="font-family: 宋体;">?/span><span lang="EN-US">DWZ</span><span style="font-family: 宋体;">两个国内优秀的开源项目强合,携手推出</span><span lang="EN-US">J-Hi4DWZ</span><span style="font-family: 宋体;">版?/span></p> <p class="MsoNormal" style="text-align: center;" align="center"><span lang="EN-US"><img src="http://www.tkk7.com/images/blogjava_net/hao-zhang-hi/hi-logo.jpg" alt="" border="0" width="68" height="68" /></span><span style="font-size: 0pt; color: black; border: 1pt none black; padding: 0cm; background: none repeat scroll 0% 0% black;" lang="EN-US"><span> </span></span><span lang="EN-US"><img alt="" src="http://www.tkk7.com/images/blogjava_net/hao-zhang-hi/dwzlogo.png" width="150" height="50" /></span></p> <p class="MsoNormal"><span lang="EN-US"> </span></p> <p class="MsoNormal"><strong><span style="font-family: 宋体;">d面</span></strong></p> <p class="MsoNormal"><span lang="EN-US"><img alt="" src="http://www.tkk7.com/images/blogjava_net/hao-zhang-hi/4dwz1.jpg" width="881" height="367" /></span></p> <p class="MsoNormal"><strong><span style="font-family: 宋体;">首页?/span></strong></p> <p class="MsoNormal"><span lang="EN-US"><img alt="" src="http://www.tkk7.com/images/blogjava_net/hao-zhang-hi/4dwz2.jpg" width="1024" height="506" /></span></p> <p class="MsoNormal"><strong><span lang="EN-US">J-Hi</span></strong><strong><span style="font-family: 宋体;">生成器生成的~辑面</span></strong><span style="font-family: 宋体;">Q你不用写M一行代码就能实现富文本~辑、页面校验、上传附件、自动带回、主从表~辑{功?/span></p> <p class="MsoNormal"><span lang="EN-US"><img alt="" src="http://www.tkk7.com/images/blogjava_net/hao-zhang-hi/4dwz4.jpg" width="1217" height="625" /></span></p> <p class="MsoNormal"><span lang="EN-US"> </span></p> <p class="MsoNormal"><strong><span style="font-family: 宋体;">角色分派面</span></strong><span style="font-family: 宋体;">Q可以看到^台提供左侧树(wi)型结构(无需M~码Q简单配|即可)(j)</span></p> <p class="MsoNormal"><span lang="EN-US"><img alt="" src="http://www.tkk7.com/images/blogjava_net/hao-zhang-hi/4dwz3.jpg" width="1223" height="507" /><br /> </span></p> <p class="MsoNormal"><span style="font-family: 宋体;">当然?wi)还可以做成是弹出带回值效?/span></p> <p class="MsoNormal"><span lang="EN-US"><img alt="" src="http://www.tkk7.com/images/blogjava_net/hao-zhang-hi/4dwz5.jpg" width="432" height="475" /></span></p> <p class="MsoNormal"><span lang="EN-US"> </span></p> <p class="MsoNormal"><span lang="EN-US"> </span></p> <p class="MsoNormal"><strong><span style="font-family: 宋体;">更新日志Q?/span></strong></p> <p class="MsoNormal"><span lang="EN-US">1</span><span style="font-family: 宋体;">、融?/span><span lang="EN-US">DWZ</span><span style="font-family: 宋体;">富客L(fng)做前端页面展C?/span></p> <p class="MsoNormal"><span lang="EN-US">2</span><span style="font-family: 宋体;">、支持跨览器包?/span><span lang="EN-US">IE6\7\8\9 FireFox</span><span style="font-family: 宋体;">{?/span></p> <p class="MsoNormal"><span lang="EN-US">3</span><span style="font-family: 宋体;">、实?/span><span lang="EN-US">webwork</span><span style="font-family: 宋体;">?/span><span lang="EN-US">struts2</span><span style="font-family: 宋体;">无配|文件解x?/span></p> <p class="MsoNormal"><span lang="EN-US">4</span><span style="font-family: 宋体;">、插件增加?zhn)联机帮?/span></p> <p class="MsoNormal"><span lang="EN-US">5</span><span style="font-family: 宋体;">、支持实体复?/span></p> <p class="MsoNormal"><span lang="EN-US"> </span></p> <p class="MsoNormal"><span lang="EN-US">1</span><span style="font-family: 宋体;">、解决登录用L(fng)信息与数据库信息不一致的问题</span></p> <p class="MsoNormal"><span lang="EN-US">2</span><span style="font-family: 宋体;">、解军_语言标签~存问题</span></p> <p class="MsoNormal"><span lang="EN-US">3</span><span style="font-family: 宋体;">、生成时如果有从表不在菜单显C?/span></p> <p class="MsoNormal"><span lang="EN-US">4</span><span style="font-family: 宋体;">、解军_</span><span lang="EN-US">struts</span><span style="font-family: 宋体;">下角艌Ӏ权限、h员会(x)有垃圾数据问?/span></p> <p class="MsoNormal"><span lang="EN-US">5</span><span style="font-family: 宋体;">、增加二个对菜单?wi)的qo(h)的接口,?qing)回调实?/span></p> <p class="MsoNormal"><span lang="EN-US">6</span><span style="font-family: 宋体;">、修改了(jin)对菜单树(wi)非整数型的配|方?/span></p> <p class="MsoNormal"><span lang="EN-US">7</span><span style="font-family: 宋体;">、解军_删除标识W的实体未做qo(h)的问?/span></p> <p class="MsoNormal"><span lang="EN-US">8</span><span style="font-family: 宋体;">、优化了(jin)</span><span lang="EN-US">webwork</span><span style="font-family: 宋体;">?/span><span lang="EN-US">struts</span><span style="font-family: 宋体;">的基c?/span><span lang="EN-US">BaseAction</span></p> <p class="MsoNormal"><span lang="EN-US"> </span></p> <p class="MsoNormal"><strong><span style="font-family: 宋体;">开发h员列表:(x)</span></strong></p> <table class="MsoTableGrid" style="border-collapse: collapse; border: medium none;" border="1" cellpadding="0" cellspacing="0"> <tbody> <tr> <td style="width: 95.4pt; padding: 0cm 5.4pt;" valign="top" width="127"> <p class="MsoNormal"><span style="font-family: 宋体;">人员</span></p> </td> <td style="width: 188.65pt; padding: 0cm 5.4pt;" valign="top" width="252"> <p class="MsoNormal"><span style="font-family: 宋体;">主要工作</span></p> </td> </tr> <tr> <td style="width: 95.4pt; padding: 0cm 5.4pt;" valign="top" width="127"> <p class="MsoNormal"><span style="font-family: 宋体;">张慧?/span></p> </td> <td style="width: 188.65pt; padding: 0cm 5.4pt;" valign="top" width="252"> <p class="MsoNormal"><span style="font-family: 宋体;">?/span><span lang="EN-US">dwz</span><span style="font-family: 宋体;">集成Q富客户端开?/span></p> </td> </tr> <tr> <td style="width: 95.4pt; padding: 0cm 5.4pt;" valign="top" width="127"> <p class="MsoNormal"><span style="font-family: 宋体;">杨新?/span></p> </td> <td style="width: 188.65pt; padding: 0cm 5.4pt;" valign="top" width="252"> <p class="MsoNormal"><span lang="EN-US">Eclipse</span><span style="font-family: 宋体;">插g开?/span></p> </td> </tr> <tr> <td style="width: 95.4pt; padding: 0cm 5.4pt;" valign="top" width="127"> <p class="MsoNormal"><span style="font-family: 宋体;">张昊</span></p> </td> <td style="width: 188.65pt; padding: 0cm 5.4pt;" valign="top" width="252"> <p class="MsoNormal"><span style="font-family: 宋体;">生成器及(qing)底层开?/span></p> </td> </tr> <tr> <td style="width: 95.4pt; padding: 0cm 5.4pt;" valign="top" width="127"> <p class="MsoNormal"><span style="font-family: 宋体;">肖金华、a泉</span></p> </td> <td style="width: 188.65pt; padding: 0cm 5.4pt;" valign="top" width="252"> <p class="MsoNormal"><span style="font-family: 宋体;">修改q_功能面Q修?/span><span lang="EN-US">bug</span></p> </td> </tr> </tbody> </table> <p class="MsoNormal"><strong><span style="font-family: 宋体;">试人员列表Q?/span></strong></p> <p class="MsoNormal"><span lang="EN-US"><span>     </span></span><span style="font-family: 宋体;">|天文、伏占才、宋艺、肖金华、张?/span></p> <p class="MsoNormal"><span lang="EN-US"> </span></p> <p class="MsoNormal"><span style="font-family: 宋体;">下蝲地址Q?/span><span lang="EN-US"><a >http://code.google.com/p/j-hi/downloads/list</a></span></p> <p class="MsoNormal"><span lang="EN-US">J-Hi</span><span style="font-family: 宋体;">Q?/span><span lang="EN-US"><a >http://code.google.com/p/j-hi/</a></span></p> <p class="MsoNormal"><span lang="EN-US">DWZ</span><span style="font-family: 宋体;">Q?/span><span lang="EN-US"><a >http://code.google.com/p/dwz/</a></span></p> <p class="MsoNormal"><span lang="EN-US"> </span></p> <p class="MsoNormal"><span style="font-family: 宋体;">U上交流Q?/span><span lang="EN-US">133176937(</span><span style="font-family: 宋体;">?/span><span lang="EN-US">),133177634(</span><span style="font-family: 宋体;">?/span><span lang="EN-US">),133178083,134232577</span></p> <p class="MsoNormal"><span lang="EN-US"> </span></p> <p class="MsoNormal"><strong><span style="font-family: 宋体;">相关文章</span></strong><span style="font-family: 宋体;">Q?/span><span lang="EN-US"><a href="../archive/2011/04/25/348939.html"><span style="font-family: 宋体;" lang="EN-US"><span lang="EN-US">写在</span></span>J-Hi for DWZ<span style="font-family: 宋体;" lang="EN-US"><span lang="EN-US">版发布的前夜</span></span></a></span></p> <p class="MsoNormal"><span lang="EN-US"><span>                </span><a href="../archive/2011/05/02/349363.html">J-Hi<span style="font-family: 宋体;" lang="EN-US"><span lang="EN-US">快速开发^台到底快速在哪里</span></span>?</a></span></p> <p class="MsoNormal"><span lang="EN-US"><span>                </span><a ><span style="color: windowtext; text-decoration: none;">“J-Hi”Java</span><span style="font-family: 宋体; color: windowtext; text-decoration: none;" lang="EN-US"><span lang="EN-US">开源^台的生力?/span></span></a></span></p> <p class="MsoNormal"><strong><span lang="EN-US"> </span></strong></p> <p class="MsoNormal"><strong><span style="font-family: 宋体;">下一步计划:(x)</span></strong></p> <p class="MsoNormal" style="margin-left: 59.25pt; text-indent: -18pt;"><span lang="EN-US"><span>1Q?span style="font: 7pt "Times New Roman";">  </span></span></span><span style="font-family: 宋体;">融合</span><span lang="EN-US">SpringJDBC</span></p> <p class="MsoNormal" style="margin-left: 59.25pt; text-indent: -18pt;"><span lang="EN-US"><span>2Q?span style="font: 7pt "Times New Roman";">  </span></span></span><span style="font-family: 宋体;">支持实体从数据库反向导入q生成代?/span></p> <p class="MsoNormal" style="margin-left: 59.25pt; text-indent: -18pt;"><span lang="EN-US"><span>3Q?span style="font: 7pt "Times New Roman";">  </span></span></span><span style="font-family: 宋体;">支持?wi)Şlg的可视化配置</span></p> <p class="MsoNormal"><span lang="EN-US"> </span></p> <img src ="http://www.tkk7.com/hao-zhang-hi/aggbug/349495.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/hao-zhang-hi/" target="_blank">张昊</a> 2011-05-04 15:18 <a href="http://www.tkk7.com/hao-zhang-hi/archive/2011/05/04/349495.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J-Hi快速开发^台到底快速在哪里?http://www.tkk7.com/hao-zhang-hi/archive/2011/05/02/349363.html张昊张昊Sun, 01 May 2011 16:32:00 GMThttp://www.tkk7.com/hao-zhang-hi/archive/2011/05/02/349363.htmlhttp://www.tkk7.com/hao-zhang-hi/comments/349363.htmlhttp://www.tkk7.com/hao-zhang-hi/archive/2011/05/02/349363.html#Feedback8http://www.tkk7.com/hao-zhang-hi/comments/commentRss/349363.htmlhttp://www.tkk7.com/hao-zhang-hi/services/trackbacks/349363.html1、快速上手,降低学习(fn)曲线

       对于刚刚接触J-Hi的h来说Q它上手很容易,我们为每一个功能点都提供了(jin)(zhn)Q帮助功能Q即使没有Q何资料(当然我们已提供了(jin)视频与开发文档)(j)Q?zhn)也可以通过向导与帮助在十分钟之内就可以创徏出?zhn)自己的项目原型?/span>

       其次J-Hiq_采用的大都是大家耳熟能详的主框架与技术,如果(zhn)对L的框架有所?jin)解Q那么对J-Hi的学?fn)就没有Md?jin)?/span>

2、快速搭建开发环?/span>

       也许(zhn)因为项目或自n开发团队的不同?x)采用不同的框架技术,例如(zhn)团队中?/span>struts2熟?zhn)的hq远要比掌握webwork的工E师要多Q或者在(zhn)的目中统计分析的功能很多Q?zhn)要考虑ORM的效率问题,而不得不攑ּhibernate而采?/span>ibatis?/span>springJDBCQ也许?zhn)q要考虑数据库问题等{。在搭徏开发环境?zhn)一定会(x)考虑很多因素Q尽搭建开发环境ƈ不复杂,但还是不够自动化Q还要手动的配置Q费时费力?/span>J-Hi为快速搭建开发环境提供合理的解决Ҏ(gu)Q?zhn)可以按需求动态的搭徏开发环境?/span>

在此(zhn)可以选择不同?/span>ORM框架

在此(zhn)可以选择不同的表现层框架

在此(zhn)可以选择不同的页面框Ӟq且我们提供?#8220;预览”让?zhn)在搭建开发环境之前就可以看到搭徏后的面昄效果

在此(zhn)可以选择不同的数据库?/span>

3、快速生成所有代?/span>

       通过建立或导入模式,(zhn)可以快速的生成所有代码与文gQƈ且在生成时会(x)Ҏ(gu)(zhn)选择的框架技术与数据库的不同而自动适配?/span>

       当然(zhn)还可以有选择的生成部分代码文Ӟ例如只生?/span>JSP面Q或只生?/span>java代码。生成的java代码l构如下Q因为我选择的框架是ibatis3+struts2Q所以^C(x)自动匚w只生成与q两个框架相关的cLӞ而不?x)生成无用的其它框架的东西?j)Q?/span>

4、快速解军_业务需求中的技术难?/span>

       一般我们在做项目开发时QL要等到项目开发的中、后期才能去解决业务核心(j)问题Q因此很造成无法合理估计目的技术风险。原因是复杂的业务L要等到基模块建好后才能进入到开发阶D,从而解决核心(j)的技术问题置后。我们以一个报销Z来做个简单说明,比如报销在审核后的业务逻辑很复杂ƈ且有可能q要涉及(qing)C其它的系l对接。一般来说我们L要等到这个报销单徏好,L(fng)要有最基本的增删查改功能(即没有面也要有后台的代码Q后才能q入到核?j)业务的开发,q就加大的技术风险,因ؓ(f)我们?x)很早的发现问题Q但解决q些问题却远q的落后于发现这个问题,甚至C(jin)开发的中、后期因为技术问题在底层上还要一改再攏V而?/span>J-Hi可以很快的进入到业务核心(j)的技术上Q因为只要生成,基础功能已l提供,甚至q_qؓ(f)(zhn)提供了(jin)单元试用例c,从而(zhn)可以直指业务核?j),项目风险控制在最低?/span>

5、通过提供通用的组?/span>

       q_提供?jin)很多通用业务lgQ例如组l机构、角色权限、报表、定时Q务、菜单管理、日志管理、系l配|、附件上传等{,除此之外q_q提供了(jin)一些纯技术组Ӟ例如?wi)型l构?/span>java脚本工具、编码生成器、可选择性的q回JSON对象{等。这些通用的业务组件与技术组件可以ؓ(f)(zhn)在开发过E节省很多时_(d)随需使用Q从而大大降低开发速度?/span>

6、通过服务的复用性提高开发速度

       在介l^台的服务复用性之前,让我们来举个例子。比如?zhn)做?jin)一?/span>OA目其中有一个模块是报销理q个模块很成熟,(zhn)已l在OApȝ中应用了(jin)很久。现在又有一?/span>ERPpȝQ?zhn)xq个成熟的报销理复制?/span>ERPpȝ中,q样q个功能׃用在ERPpȝ中再做开发了(jin)。对于^台来说这是服务的复用性,我们提供?jin)一整套Ҏ(gu)务复用性的解决Ҏ(gu)Qƈ且有自己的可视化工具?/span>

我们叫它J-Hi整合工具Q是?/span>C#做的。它的作用:(x)

     1Q可视化导入/导出数据库,q同时实现跨数据库,例如(zhn)可以在mysql上开发(导出Q,开发完所有的数据q移?/span>oracle上(导入Q?/span>

     2Q发布器Q可视化?zhn)开发的模块或系l自动发布成一个发布包Q包括数据库?/span>jar、文件[jsp、js、图片、配|文件等]q包括文件的片段[例如修改web.xml文g中的一部分内容]Q?/span>

     3Q部|器Q将发布包部|到开发的工程中,部v的内容见发布器的描述

     4Q实施器Q对应的生pȝQ我们通过FTPQ将相应的文件与数据库自动部|到生pȝ?/span>

7、快速的部v与迁U?/span>

       也许(zhn)正在ؓ(f)客户要求?/span>SQLServer数据库改?/span>Oracle而感到苦|因ؓ(f)q要做大量的数据q移工作Q或许?zhn)反复的将修改后?/span>bug部v到生产环境中而郁P我想J-Hi通过它的整合工具为?zhn)提供了(jin)便L(fng)方式。具体的实现方式请参见上一节的介绍

8、开发h员可以快速的接手别h的工?/span>

       因ؓ(f)使用J-Hi开发,生成的代码与文g的风格都是相同的Q在哪里写业务逻辑应该怎么写?在哪里要攚w面应该怎么做?惌到哪张数据库表或表与cȝ对应关系Q包括生成的cR?/span>JSP文g、配|文件的命名规则都是l一的。因此一个新人加入团队会(x)很容易的上手q进入工作状态,即是修改别人写q的代码Q也?x)很快速的定位到相应要修改的位|?/span>

9、快速解决需求变?/span>

       对于目开发来_(d)目的需求变更是很正常的事情Q对于有l验的项目经理来_(d)如果一个项目从未发生过需求变更过反而是不正怺(jin):)一但需求变更大多都要改数据库表Q如果是已运行很E_的系l,q种变更真是要命?/span>J-Hi为此也提供了(jin)自己的解x案,对于单表变更Q^台只要对单个实体生成可以了(jin)。如果是复杂的变_(d)我们q提供承实体的解决Ҏ(gu)Q也是说原来的所有代码与表结构都不变Q通过实体l承J-Hi?x)从数据库表?/span>javacd?/span>JSP面形成一整套l承关系Q从而保证以前功能的E_性。这个说来好象很玄妙Q让我们举例说明。比如你有一个部门表Q?/span>N多信息都与它有联p,而且做了(jin)很多的业务处理,现在客户要求在部门表中加另一些信息。对你来说可能会(x)为部门表中加字段Q由此而带来所有类的变化与面的变化,而这套系l已l很E_已经用了(jin)一、两q了(jin)Q开发h员都已经d?jin)公司,q样接手的h要读懂全部代码才有可能改Q这样就造成开发速度的大大降低。^台提供了(jin)另一U解x案:(x)不动以前的Q何东西,相关于在原有的基上打上一块补丁。再做一张表Q让q张表与部门表Ş?/span>one to one的关p,而类无论?/span>POJO?/span>DAO?/span>Service都承自部门相应cM为父c,同时?/span>JSP面上也?x)承所有部门的所有元素,q样Ş成了(jin)实体l承关系Q这好比设计模式中最基本?#8220;开闭原?#8221;Q对于所有的新生功能是开攄Q而对于已有的老功能是关闭的,可以完全把老的功能视ؓ(f)一个黑。这样即能保证已有功能的E_性,又能加入新的功能做ؓ(f)补充?/span>



张昊 2011-05-02 00:32 发表评论
]]>
վ֩ģ壺 ˾ƷƵ| պƷһ | AVƬ߹ۿ| ŮƵ| žŮվ| Ƶۿ| ޹ۺϵһƷС˵| ˾þô߽Ƶ| ѲƵ| ޾ƷĻ߹ۿ| ɫ˿ѹۿվ| AVַ߹ۿ| þþþavר| һëƬһëƬëƬ| պƬѿ| ޸רպƷ| һػaaaƬѿ| ëƬƵ| ۺһƷ| þþƷվ| ޹Ʒ˾þ| þAV | ˸߹ۿƵ| ҹįһۿ| 2021â| ɫ鶹һƷһAVһ | վ߹ۿ| ëƬƬѹۿ| պһƵ| Ļ| ѻɫַ| þþƷĻ鶹| ëƬa߹ۿ| ޾Ʒ| Ļĸ| ˾þóۺӰԺ| ޾Ʒŷ߹ۿ| һƵ| ޾Ʒպav| 8xƵ| ޵һ㽶_a|