1. 郁闷的Form表单问题,请看下面代码:
xml 代码
-
<form name="form1" action="userCRUDAction!editUser.action?user.id=${user.id}">
这真已经是一个再简单不过的Struts2的表单提交了,不过运行后,你会发现user.id=null。 为什么? 你现在试试把代码换成以下就好了。
xml 代码
-
<form name="form1" action="userCRUDAction!editUser.action?user.id=${user.id}" method="post">
或者:
xml 代码
-
<form name="form1" action="userCRUDAction!editUser.action">
-
<input type="hidden" name="user.id" value="${user.id}" />
原因看出来了吧,重点就是这个 method="post", Form默认的传输是GET,你得养成好习惯记得在每写一个FORM的时候,就给加上。
2. 吓出一身冷汗的Spring scope问题。
天天Struts2,Webwork,Spring,Hibernate挂在嘴边,结果一用的时候才真正明白,真正懂这几个框架的人真的非常非常少。更别去谈成功的项目了。
以下代码在任何SSH框架的项目里是太平常的我都不愿意写了:
java 代码
-
public class UserController extends ActionSupport {
-
-
private static final long serialVersionUID = 1L;
-
-
private static Logger logger = Logger.getLogger(BaseController.class);
-
-
private IUserService userService;
-
-
private User user;
-
private Date createDate;
-
-
..................
然后把 userService 注入:
xml 代码
-
<bean id="userCRUD" class="com.libe.controller.UserController">
-
<property name="userService" ref="userService" />
-
</bean>
代码单元测试也通过了,社会和谐了,呵呵。可是一放到服务器上,开始出莫名奇妙的问题了,测试人员不停的提交那些根本不可能出现的问题,好吧。开断点,看着断点也吓出一身冷汗:许多本应该为null的对象,竟然都有值了!@##¥%。
代码查了又查看了又看,终于又回到这个XML配置片断了,修改成如下:
xml 代码
-
<bean id="userCRUD" class="com.libe.controller.UserController"
-
scope="prototype">
-
<property name="userService" ref="userService" />
-
</bean>
就是加了一个 scope="prototype"。 然后回头看看项目,几十个Action竟然都没有加,汗,测试员提出的问题应该和这个有关,大家都知道Spring的默认设置为:singleton,Spring的容器只维护该类的一个实例感觉应该和启动后,Tocmat加载的Servlet挺相似。如果这个时候Action设置成了singleton,大家可以试着想像一下在那个Action里的 user, createDate,等等其它私有属性在那几个测试员的交差点击下,会出现多么混乱的情况。
3.Hibernate的滥用:
我一直承认自己的Hibernate用的不好,所以更多的时候是在测试,以达到最佳实践。从最开始对Hibernate的疯狂吹捧,再到将Hibernate项目转成JDBC项目之痛,到现在反复看文档做测试尽可能客观的来对待Hibernate,已经有一年多了。
我这个项目其实根本不适合使用Hibernate
1.从一开始就不是按照对象建模再建表,对象建立都是跟表走。
2.表结构冗余非常严重,一般通过关联取的信息已经在主控表里了。
3.用着最新的Hibernate却当Hibernate2.1使用,那些什么lazy, cache, proxy, out-join全部都不管,这也是让我最郁闷的一点,lazy=false,你就等着Hibernate给你刷屏吧。
想改变这一切,可是我来的有点晚,项目已经做了一大半了,要全部设计的话似乎已经不可能了。
分享到:
相关推荐
掌握了这个,基本上脱离鼠标。 假如有一个,你的鼠标不能正常工作,是不是就不能用电脑了呢?没关系,平时多用键盘操作是有好处的! 掌握了这个,基本上脱离鼠标。 假如有一个,你的鼠标不能正常工作,是不是就不能...
红盟过客写的有关在项目过程中经验之谈!!
ARM技术初学者入门的好材料,是老ARM开发人员的一些经验之谈!
大中华区总裁孙振耀退休感言,句句都是经验之谈!
初学者经验之谈!对于刚学SSH的学生们的一些指引。
这是我参加实训时的项目经理给我的经验之谈!希望对大家有帮助!
华为内部编码规范和范例 经验之谈!对你的规范编码挥起到帮助作用。
经验之谈! 吸取其中的精髓,少走弯路! 有选择的看,不一定要那样来,因为毕竟每个人的环境都不一样!
是不是有很多人在第一次从事项目开发时会很迷茫,很困惑,不知道从何入手,不知道该做些什么,该怎么去做?我一开始也是这样,但是自己制定了详细的项目开发计划流程图后就知道自己该怎么去做了,经验之谈!
关于下载全自动下载ImageNet等大型数据集的经验之谈,以及代码 关于下载全自动下载ImageNet等大型数据集的经验之谈,以及代码 关于下载全自动下载ImageNet等大型数据集的经验之谈,以及代码 关于下载全自动下载...
主要是有关PADS设计PCB的经验之谈,很好很实用的,希望对大家有帮助。
电子工程师的经验之谈
数模经验之谈 数模经验之谈 数模经验之谈 数模经验之谈
“工程师是科学家;工程师是艺术家;工程师也是思想家。”一位伟大的工程师曾经提出过这样的一段感言。不错,工程师是利用自然科学来创造工程的人。工程既是物质的也是思想上的。许多不朽的工程,伟大的发明以及...
采购工程项目师经验之谈
一个电子工程师的经验之谈,看后很有感慨!
交易员必鉴:一个日内交易员的经验之谈.doc
Photoshop操作经验之谈,学习和利用Photoshop操作的好东西,都是精华,绝对有意义
射频(Radio Frequency)调试经验之谈
关于网络推广外链的一些经验之谈.docx关于网络推广外链的一些经验之谈.docx关于网络推广外链的一些经验之谈.docx关于网络推广外链的一些经验之谈.docx关于网络推广外链的一些经验之谈.docx关于网络推广外链的一些...