首页 > 代码库 > 做项目遇到的坑(一)

做项目遇到的坑(一)

数据库 坑:
表命名的规范,避免各平台的关键字:什么order,user,**class,不要这样命名,否则你一定会后悔的;

错误:连接设重复了;
原因:pom.xml中的变量和propertis中变量覆盖--这个问题很隐蔽,因为运行mvn run时不显示出来)

 

用SpringMVC框架 坑:
表单提交时自动绑定时,日期控件,要特别处理;

Post请求用表单来传递数据给后端时,报错:
这是因为前台form表单中的某些参数 和 后台接受的参数类型不一致导致的。即参数名称相同,但是类
型不一致。spring mvc在绑定参数的时候出现异常,所以返回400错误。但是坑爹的地方在于,这个异常会被
spring mvc吃掉,不会显示在控制台中。
解决办法:把当前日志设为debug 级别,然后在日志中即可看到spring 抛出的异常信息,即可发现哪个参数出现了错误。
(大坑)但是当用AJAX技术请求时,后端它会连错都不会报的!!亲身经历,崩溃中……


清除@SessionAttributes中的属性的正确解法:
sessionStatus.setComplete(); //注意它不会清除HttpSession中的属性;

关于运行期异常:Failed to instantiate [java.util.List]: Specified class is an interface;
原因:Spring在注入的时候,不允许注入一个List类型的对象:request.getParameter("name"),如果你单纯
接收一个list参数,list虽然有get和set方法,但是没有名字呀,只能根据数组下标来判断参数位置。
解决:新建一个包装类专门来包装类似的需要接收的list参数。


(大坑)用window.location.href = "http://www.mamicode.com/#" 跳转到Controler后,在转发到页面时,页面中文乱码???;去掉方法中形
参:PrintWriter out就好使了!

 

数据库连接 坑:
使用:MySql+MyBatis+Druid;让MyBatis一次执行多条语句时,报错:sql injection violation, multi-statement not allow:
原因一:连接数据库的url上没有加上支持批量的参数
原因二(重点):Druid配置的问题,异常是Druid的WallFilter.check()抛出的;
解决方案:不要同时配置filters和proxyFilters,filter都是内置的,想通过proxyFilters来定制的话,就不要配置filters。

 

前端 坑:
前端有时样式会失灵,可以的引入的css,js存在重复冲突,互相覆盖造成的;---排除法

在做Http请求时,如果你的页面上的路径不以/开头,则认为是相对路径,默认会自动加上上个页面请求的路

 

发布 坑:
将IDEA的项目直接扔Tomcat的webapp下,当部署项目时,会因项目的路径的原因而找不到资源,设置项目的根
路径;而采用ajax技术时,我暂时是通过隐藏表单的方式传递项目的跟路径,然后用js获取想项目的根路径;

做项目遇到的坑(一)