jsf 与 spring集成后,h:commandButton等带有ajax功能的组件均不能正常使用。因此放弃与spring的集成。
两者分别管理各自的bean,当jsf bean需要使用spring的bean时,通过spring提供的api获取。
心得:
1.尽量减少框架之间的耦合,否则出现问题很难定位。上述问题耗时两天,最终采用排除法才找到问题出在哪儿。
2.避免过度封装。封装过度同样会导致出现问题难以排查且不利于自定义功能。在使用JSF的过程中,曾考虑使用第三方组件库,如primefaces等。但考虑到其组件特性过度封装,不利于自定义扩展。
在构建web项目时着重于前端的ajax特性以及web样式的自定义。JSF基本组件很好的满足了ajax特性且无自定义样式,减少了服务器负载。其他第三方组件库过于繁重。不利于项目的可维护性。