用于新项目的JSF或JSP 2标记文件

时间:2013-04-23 11:06:44

标签: java spring jsp jsf rich-ui

我要求将一些停放的Java端项目的功能合并到一个新的应用程序中,并试图决定使用某些第三方库,特别是与UI有关。我非常有兴趣从技术领域的成员那里得到一些关于他们对最近的Java框架趋势和经验的观点的反馈。

遗留项目是混合的,所有基于Web的,围绕具有搜索的CRUDable对象的大量业务逻辑。一个使用内部框架 - 非常快速,可扩展,但具有与内部工作相关的缺点 - 新开发人员的学习曲线等。另一个,Tapestry 5应用程序 - 与XFire / CXF非常强大,极好的集成,用于生成Web服务,快速创建UI,但非Tapestry类型具有良好的学习曲线。第三个是Spring 3应用程序,使用JSP 2.0标记文件作为视图层,其中有一些JQuery用于表示/ ajax。

我非常熟悉Spring,并且在低复杂度和高性能方面非常有效地为用户界面找到标签文件。我最近也结束了一个使用RichFaces 4的项目,该项目很成功,准时进入。我喜欢使用RF / IceFaces等免费提供的丰富用户界面,并注意到JSF在其最新版本中完全退役了JSP。

要切入追逐,限制使用基于组件的UI库,其中明确定义但不可修改的行为(如RF / IF)更适合新应用程序,而不是自己动手解决方案,带有标记文件/ JQuery 。我对后者比较熟悉,但不想在项目的早期阶段采用过时的方法走错路。我想继续使用Spring 3控制器用于RESTful,可收藏的应用程序入口点 - 使用Spring进行IF / RF混合还是JSF方法完全从Spring中删除MVC义务?

如果从Spring中移除MVC义务:

  • JSF生命周期如何与Spring集成 - 它是自包含的,只是使用IOC来连接Spring服务吗?

  • 是否与IF / RF方法很好地集成以生成Web服务等?

  • IF / RF对平板电脑/手机有什么样的支持?

  • 完全需要Spring - 托管bean会不会这样做?

1 个答案:

答案 0 :(得分:3)

  

要切入追逐,限制使用基于组件的UI库,其中明确定义但不可修改的行为(如RF / IF)更适合新应用程序,而不是自己动手解决方案,带有标记文件/ JQuery 。

不是一个或另一个。 Java Server Faces是一个基于组件的Web框架,允许在请求和响应上同步服务器和客户端状态,以允许应用程序中的阶段和事件模型之类的事情。许多JSF组件固有地利用jQuery,并通过将它们包装在服务器端行为中来扩展富客户端控件。任何延伸都不是不可修改的行为,只是有一点学习曲线以非常具体的方式定制事物。

JSF目前是Oracle推荐的Java EE Web开发方法。

  

IF / RF与Spring混合还是JSF方法完全从Spring中删除了MVC的义务?

     

JSF生命周期如何与Spring集成 - 它是自包含的,只是使用IOC来连接Spring服务吗?

JSF本质上是它自己的MVC框架,并且托管属性已经在依赖注入中自己编写了。 Core Spring主要是Depedency Injection,所以人们会认为它们不一致,但令人惊讶的是它们很好地结合在一起。

最新版本的Spring为JSF提供了自己的EL Resolver实现,允许将JSF Managed Beans作为Spring bean处理。这个类甚至可以装回到Spring的旧版本中,我已经完成了,并注意到没有任何问题。

Spring MVC主要基于JSP技术,但它不是Spring的核心部分。如果您不希望提供JSP页面,则只需将其包含在JSF Web应用程序中即可。

  

是否与IF / RF方法很好地集成以生成Web服务等?

当谈到JSF应用程序中的Web服务时,最好记住JSF不必定义Web应用程序的限制,也不必完整地定义它。 JSF仅仅是JSF页面请求的前端。了解这一点,您的同一个Web应用程序也可以提供自己的基于SOAP或REST的Web服务,或者只是在业务逻辑中的服务器端数据源上处理这些Web服务。另一种方法是在您的页面上从Javascript调用外部Web服务。 JSF中没有任何内容可以阻止您合并HTML,Javascript甚至更新的HTML5技术的任何元素。

  

IF / RF对平板电脑/手机有什么样的支持?

不确定IF和RF有什么,但我知道Primefaces有一个令人印象深刻的移动应用程序控制集,值得一试。

  

总是需要Spring - 托管bean会不会这样做?

绝对不需要它。我碰巧喜欢Spring,所以我用它。