Struts + Spring + Hibernate 坑点

来源:互联网 发布:端口号对应的协议 编辑:程序博客网 时间:2024/05/19 13:58
这次用SSH做了一个小型超市管理系统,在实际开发过程中发现了太多的坑点,现在把它们记录下来。
GitHub源代码在这里:Supermarket
  1. 小技巧:
    1.1 非Web项目快速加包:首先复制到目录下,全选所有包,右击,选择Add Build Path即可。
    1.2 在下面的servers展开,可以找到当前的项目,右击可以将其remove掉,防止缓存对下一次运行造成影响。(如修改了jsp页面的名字,下一次运行会找不到它,即使再把名字改回来还是找不到,这时就要这样清除缓存)
    1.3 在项目目录的右上角可以选择Package Presentation为hierarchical,利于显示目录。

  2. Struts坑点:
    2.1 使用Struts的验证时,必须要让那个action继承ActionSupport。
    2.2 result下type=”redirect”无法重定向到WEB-INF目录中。
    2.3 ActionContext.getContext().put("myEmployeeList", myEmployeeList);可以将myEmployeeList放到上下文对象中。
    2.4 action里面的bean别忘记设置setter和getter方法,否则无法用Spring实例化。
    2.5 巧妙地使用<action name="*_*" class="action.{1}" method="{2}">,减少代码量。

  3. Spring坑点:
    3.1 Spring 和 Struts 结合在一起时,必须要把每个action都托管给Spring,否则报错。
    3.2 配置bean的时候,对于Struts的每个action,必须将其id属性和Struts的class相匹配,否则报错!!!

  4. Hibernate坑点:
    4.1 HQL中的表名要和hbm的name一样,首字母大写!!!
    4.2 HQL 只有当记录从一个对象插入到另一个对象时才支持 INSERT INTO 语句,其它情况下都不允许插入操作!!!
    4.3 不管是session还是HQL,在执行insert、delete、update必须要使用Transaction,必须commit!!!
    4.4 HQL语句不能加分号!
    4.5 在hibernate.cfg.xml里面别忘记添加实体(entity)的映射。
    4.6 sessionFactory这个实例可以自己按常规的hibernate传统写法创建,也可以交给Spring托管。

  5. JSP页面坑点
    5.1 在<s:iterator value="#myAccountList" status="bcs">下,如果要输出Date类型数据,需要<s:date name="employdate" format="yyyy-MM-dd"></s:date>
    5.2 <s:form action = "login">的坑点可以去这里
    5.3 在<s:form>里面,设置theme="simple",否则会在每个控件后面自动加一个<br>

原创粉丝点击