放弃了Struts2.0
之前那篇文章,我说要选择Struts2.0,但我现在在的这个项目,选Struts2.0,并没有达到了预期的结果!
现在就我的开发项目的经验谈一下,这些表现层的框架的东西!Struts2.0,Struts1.2,JSF.
我的项目主要解决几个问题,表单验证,权限管理,日志管理!
表简单验证
Struts1.2,对于表单验证很复杂,我试过了Validation的客户端验证,还有服务器端验证,还有JavaScript(更不熟悉)我遇到很多问题,另外那些Form的什么的,问题也多多!
Struts2.0相对Struts1.2的表单验证要好,用这个基本没问题。国际化要比Struts1.2复杂!
JSF当然也OK,无论验证配置,还是国际化的配置都比Struts2.0简单。
权限管理,日志管理
Struts1.2+Spring,让spring的AoP去做权限管理。。。这是我最初的一个想法,但没有实现,我想如果这样做下去,工作量还是很大的!
Struts2.0+Spring,我开始也是考虑权限管理,日志管理给spring做,但可行性还是很糟糕!后来继续学习Struts2.0,用它的拦截器去管理,但是那个拦截器是无状态的,传过来的参数,我想了几个小时,都没有想到办法,怎么把拦截的参数传给Action类。。。复杂!
开始我对JSF不算深入了解,也是考虑把权限管理交给Spring的AoP业务层,但这是不可能的,因为JSF的ManagedBean不可能能放到Spring容器里让spring管理。
后来在网上看到一篇关于JSF的权限管理的,我想到办法了。。。定义一个ActionListener的实现就行了,它可以在ManagedBean的执行前后进行拦截!当然,还有一个PhaseListener,这个可以在JSF生命周期的每个阶段进行拦截!
好,这三个问题,现在我在JSF里已经解决了!项目也进入了一个较为顺利的阶段!