关于这些框架,如果可能可以实现以下要求,我将需要一些建议:
>最佳分离的设计师/编码器工作流程,使设计人员 – 最佳 – 可以用他们喜欢的Dreamweaver工具独立地阐述他们的HTML,CSS,JS / jQuery文件.
>容易集成许多现有(花哨和动画)的jQuery组件,如这个Sliding Login Panel(一个演示可以看出here).因此,这个要求实际上很容易集成现有的HTML CSS jQuery代码,而且还有:
>对于ui组件树,通过客户端(通过JS / jQuery)动态地更改视图状态的同步机制与服务器上的相应视图状态.
我想我会需要的例如,想到上面的“滑动登录面板”在客户端可以通过JS打开或关闭.其初始状态被编程为“关闭”,用户决定客户端始终保持打开状态.现在,当用户导航到某处并再次返回到该视图时,登录面板状态是无意的“关闭”而不是“打开”(因为这是其初始状态,服务器端没有发生动态状态更新).
因此,需要一个同步机制,对吧?
>最佳外部化(某处集中)导航规则
(a)任意页间导航(静态导航规则),以及
(b)“向导式”导航(动态导航规则动态确定
当前状态/结果).
>良好的性能(加载时间,服务器内存消耗,经验响应等).
明显的问题是:
> JSF2,Wicket和Spring MVC3支持哪些需求(哪些)?
>一般来说,随着这个需求 – 我仍然不确定技术方面/后果:
在这种情况下应该选择哪种框架类型(基于组件与行动的)(即应该牢记哪些关键决策方面或“经验法则”)?
非常感谢您的建议和帮助.
马丁
解决方法
>在JSF(Facelets)的模板语言中,这很简单.您只需编写常规HTML,并为动态部分添加jsfc属性.参见维基百科文章一个快速的例子:http://en.wikipedia.org/wiki/Facelets
>使用JSF的复合组件这很简单.只要把你的jquery的东西放在一个.xhtml文件中,添加一个小标题,它可以作为一个组件来重复使用.许多基于jquery的组件也可以直接使用PrimeFaces
> JSF在这个同步机制中表现出色.同步通过良好的定义和容易掌握的步骤发生.基本上,这种同步机制或多或少是使用JSF而不是直接编写jquery的主要原因.
> JSF具有这一点,甚至称之为导航规则.它们是在外部.xml文件中定义导航的强大机制.可以基于在特定页面上发生的逻辑结果和/或动作来定义导航规则.它们可以是前向或基于重定向,有或没有额外的参数.
> JSF overal表现很好.它保持(保存)状态,所以这会花费你一些记忆,但它足够聪明,只能部分保存(与原始值不同的值).您还可以决定将此状态存储在客户端或服务器上.由于视图范围非常方便,您的后台逻辑使用的少量数据可以非常容易地在请求之间缓存.这样可以节省您在每次请求后触发数据库,并可以大大提高性能.
JSF真正照耀的领域之一就是其组件模型.通过复合组件概念组建组件非常简单.您还可以在Java中创建组件,这是更多的参与,但仍然绝对不困难.
因为JSF的组件模型是标准化的,并且非常清楚地记录在案,许多第三方提供了可以使用组件库的准备.例如. RichFaces,Primefaces,OpenFaces,IceFaces,特立尼达…这个名单几乎是无止境的.
关于性能的一些额外的注意事项.在比较三个Web框架中的任何一个时,您提到的区别是微不足道的,作为一种经验法则,Web框架不是处理请求时大部分时间花费的时间.这几乎总是在数据库和IO中.
Web框架可以帮助您轻松阻止访问数据库,但即使Web框架A在合成测试中比框架B仅打入Web层快10倍,实际上您几乎不会注意到,如果只有5%请求的时间是在该框架中花费.