前一段时间一直都在看struts2的文档,上周终于看完并且总结完毕了。准备开始实践了。
初步计划如下
1.利用以前用.net做过的一个项目作为原始需求,这样能更关注于struts2各种功能的实践。
2.框架为spring2+struts2+Jpa(Hibernate)+sitemesh
选择以上框架的理由如下
spring框架提供了良好的配置式的事务和其他java周边(例如hibernate,mail,quartz等等的集成).
Jpa是sun持久化方案的一个接口到时候便于替换持久层的实现。
用习惯了.net中的masterpage的强大功能,打算试试看sitemesh是不是很好用。
3.整个实践计划3周实践。
struts2和sitemesh整合使用的过程中出现了一个小小的插曲(花费了大概3个小时的时间)
具体的问题如下
在配置完sitemesh的decoretor以后,运行首页想看看sitemesh的装饰效果,从页面上效果是相当的好,和masterpage比起来虽然没有那么灵活,但是代码量可以说是做到了最少(.net需要页面指定masterpage,sitemesh只需要在decorator.xml中配置装饰映射就ok了,还支持通配符).
看了一下后台运行的sql语句,发现本来应该只执行一次的sql查询居然执行了5次。
于是我先怀疑是不是我的decorator.xml文件中的配置有问题导致重复装饰(前后折腾了将近1.5小时发现不是)。
然后又是打trace又是跟踪页面请求的url,发现都是来自同一个请求,但是还是不知道原因所在。
最后使用了排除法,把页面上的控件一个个的添加,删除,运行测试,又经过1.5小时终于找到了,原来页面设计人员设计页面的时候在把某些td写上了background="#",导致在需要加载background的时候有提交请求到后端去加载页面本身,导致了以上问题的发生。
哎,郁闷啊,大好的青春就这么浪费了。
初步计划如下
1.利用以前用.net做过的一个项目作为原始需求,这样能更关注于struts2各种功能的实践。
2.框架为spring2+struts2+Jpa(Hibernate)+sitemesh
选择以上框架的理由如下
spring框架提供了良好的配置式的事务和其他java周边(例如hibernate,mail,quartz等等的集成).
Jpa是sun持久化方案的一个接口到时候便于替换持久层的实现。
用习惯了.net中的masterpage的强大功能,打算试试看sitemesh是不是很好用。
3.整个实践计划3周实践。
struts2和sitemesh整合使用的过程中出现了一个小小的插曲(花费了大概3个小时的时间)
具体的问题如下
在配置完sitemesh的decoretor以后,运行首页想看看sitemesh的装饰效果,从页面上效果是相当的好,和masterpage比起来虽然没有那么灵活,但是代码量可以说是做到了最少(.net需要页面指定masterpage,sitemesh只需要在decorator.xml中配置装饰映射就ok了,还支持通配符).
看了一下后台运行的sql语句,发现本来应该只执行一次的sql查询居然执行了5次。
于是我先怀疑是不是我的decorator.xml文件中的配置有问题导致重复装饰(前后折腾了将近1.5小时发现不是)。
然后又是打trace又是跟踪页面请求的url,发现都是来自同一个请求,但是还是不知道原因所在。
最后使用了排除法,把页面上的控件一个个的添加,删除,运行测试,又经过1.5小时终于找到了,原来页面设计人员设计页面的时候在把某些td写上了background="#",导致在需要加载background的时候有提交请求到后端去加载页面本身,导致了以上问题的发生。
哎,郁闷啊,大好的青春就这么浪费了。