做SSH项目的总结

1、分析业务领域知识 设计数据库 搭建项目环境(导入包、建立相应的文件夹) 将项目设置为hibernate项目  这样才能用反向工程自动生成bean类和映射文件 接着在基础上进行修改就好了

2、注意keydown keypress keyup的区别 当键盘按键按下触发过程为 keydown--->keypress--->keyup 当在一个文本框输入字符时,只有在keyup的时候文本框中值的长度才增加 可用console.log($("input:text").val().length+" "+e.type);来测试这个过程

    当某个键给长按住时,keydown事件只给触发一次,keypress触发多次

3、有时候提示缺少类,先检查有没导入相应的包,若检查确实导入了相应的包,还是有问题,可能就是导入的包中的类不完整或是包的版本问题,更换其他版本的包试试

4、SSH整合时,配置文件中的顺序不能随便乱改,有一定的顺序要求

5、Action中用于封装对象的属性用getXXX() 和setXXX() 用于注入的属性只用setXXX() 因为在使用JSON对象时,会把服务层和Action中的getXXX()后面的XXX当作是属性也序列化进来。 会报JSONException,因此在Action中注入service和在service中注入dao时,其实只要用到setXXX()就可以了。另外你也可以用一些包提供的注释来取消不序列化的属性.

6、注意hibernate延迟加载的问题,有时session已经关闭了,但是还对那个对象进行操作,就会报no session的操作,这样只要在关联的映射文件中将相应的lazy值改为false就可以了,因为lazy默认是true的,但这样有时要考虑一个效率的问题,自己权衡。

7、用jquery中的ajax方法时,尽量用 $.get() 或者$.post(); 不要用$.getJSON();发现struts对$.getJSON()支持不太好.

   将表单内的元素序列化时,只序列化有用的值,如submit按钮是不会被序列化进去的,序列化表单中的<input>, <textarea> 和 <select>,生成标准URL编码。

   如:$.post("test.php", $("#testform").serialize());

8、页面中含有disabled属性的元素的value值无法给struts中的action获取,特别注意!!!解决方法:可添加多一个<input type="hidden"> 来存放要提交到服务器的值

原文地址:https://www.cnblogs.com/huzefeng/p/2426035.html