JSF在GlassFish管理控制台中的应用 - 编程入门网
JSF用来做重业务,轻页面的企业开发还比较合适,但现在客户也都比较重视页面,对界面设计也提出了很高的要求。通过IDE,JSF可以实现可视化编辑Web界面,但如何高效的实现开发人员和网页开发人员的合作?您在开发JSF时是如何跟美工配合的?
Anissa:我们的产品对界面设计感观有一个非常明确的标准。我们使用的组件(Woodstock)默认情况下就反映了这种设计要求。因此,JSF面向组件的本质提供给我们很多外观和感觉方面的选择,而不需要太多开发工作。也就是说,我们的产品中有一些地方需要定制图片、决定如何显示信息,也存在一些地方没有被JSF Woodstock组件覆盖。针对这些情况,我们与美工合作创建图片,或者他们帮助我们决定哪些组件最合适,或者对新组件制定标准。如果需要新组件,我们经常让Woodstock团队负责这项工作--当我们不能等待时,我们才会自己实现。美工通常提供图片和HTML,我们将其转化成JSF页面或者组件。 InfoQ中文站:管理控制台是如何使用AJAX技术的? Anissa:在GlassFish V2中,我们在大多数页面上使用Ajax计算BreadCrumb。浏览器中的JavaScript计算当前哪一个树节点被选中,然后从树节点中获取 URL,将这些信息通过XMLHttpRequest发送给服务器。服务器将这些信息转化成由多个Woodstock超链接组成的BreadCrumb组件。显示该组件的代码返回到浏览器后,JavaScript将BreadCrumb信息更新到当前页面上。 当新对象创建时,我们也使用Ajax更新树节点。整棵树从不会被完全刷新,它只会通过Ajax进行部分更新。我们使用Dynamic Faces实现Ajax技术,它是Ed Burns(JSF标准负责人)领导的JSF扩展项目的一部分。 InfoQ中文站:JSF一个重要的优势是基于组件,管理控制台有没有开发自己的组件库,关于组件库的选择使用有何建议?管理控制台中的表单是如何进行扩展的? Anissa:正如在回答第4个问题时所提到的,我们使用Woodstock组件开发控制台。Woodstock 提供了一整套JSF组件,让开发人员基于统一的规范创建方便的本地化的应用。我们还没有遇到需要自己开发组件的情况。如果你有这个想法,你可以看一看 Ken Paulsen写的有关ServerSide的文章,他是JSFTemplating的技术负责人和创建者。他在文中展示了如何使用 JSFTemplating简化和加快显示(Render)开发。 我们的许多页面使用表单显示数据,这也是Woodstock的组件之一。 InfoQ中文站:在使用JSF的过程中,你们主要遇到了哪些棘手的难题,又是如何克服的? Anissa:Bug。当组件正常工作的时候它们很出色,但是当你处理一个无法工作的新组件时,很难找到原因。幸运的是,这种情况不会经常发生,因为组件被很多人、很多程序重用,因此bug会及时发现。但是,如果这发生了,我们会与组件作者交流、在论坛或者irc频道提问、搜索google中其他人遇到的类似问题,问题最终得到解决。 InfoQ中文站:JSF通过和Session绑定实现数据显示,虽然简单了,但是控制数据同时也困难了。对于这种情况,您是如何理解的? Anissa:管理控制台尽量避免使用session作用域。频繁使用session可能会导致内存的大量占用,或者之前的动作遗留下来的一些信息会导致产生bug。管理控制台尽可能多的使用request,还有pageSession,它允许伴随着页面存储值,只要你处于同一个页面,其值就一直存在,但不会超过页面的生存时间。我们的确遇到过一些情况,数据必须跨页面存在,我们要么在页面之间传递数据,要么在极少的个案中使用session。 InfoQ中文站:在提升JSF应用的性能方面,您有什么建议? Anissa:JSF提供了大量功能。但是,功能只有在需要时才是有价值的。是否应该使用JSF的更多功能取决于你应用程序的需求。如果你想对功能进一步了解以确定它们是否对你的应用有帮助,我推荐你阅读一本好书以及在JSF |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |