SSM项目的一些bug经历

最近有写SSM框架的项目,然后在写的时候其实也遇到了一大堆乱七八糟的问题。我今天来这里记录一下,一是给自己一个备忘,二来可以给大家有过类似经历的一些解决方法。

Bug1:静态资源被拦截。所谓静态资源就是css、js、图片等资源,但是我是在项目中有设置拦截器,初始是希望把所有的用户请求都拦截下来,结果发现连静态资源都被拦截掉了。当然,我朋友的电脑上并没有出现这种情况,所以推测是服务器的原因。

解决方案很简单:在web.xml文件里添加以下这句话就可以了。

<servlet-mapping> 
        <servlet-name>default</servlet-name> 
        <url-pattern>*.js</url-pattern> 
</servlet-mapping>
当然了,我们要写好多个这个东西,因为css、js以及图片都要这样设置。

更多方案详见:http://blog.csdn.net/archer119/article/details/52144730

Bug2:Mapper.xml文件里面的id重复。这是最不能原谅的,只要根据它的提示,修改掉就好了。

Bug3:前端页面ajax请求数据失败。这个其实说实话很尴尬,大部分情况下的原因其实是因为你需要的数据需要多表联查,然而有数据不存在。剩下的其它情况我也没怎么遇到过。

Bug4:页面redirect后无法传递操作成功或者失败的信息。这个也是jsp自带的,页面重定向之后request数据全部清空。

解决方案:它有提供RedirectAttributesModelMap,可以用来存储,而且重定向之后数据不会丢失,用法和Model类似,不过是使用它的addFlashAttribute()这个方法。

Bug5:页面图片资源无法显示。比如我之前退出登录之后,登录页面就全是空白的,后来一查是因为登录页面的图片资源全是相对路径,导致在不同链接下资源找不到。

解决方案:改成项目的绝对路径就可以了。

Bug6:事务回滚,这个其实我并没有真正实现,但是如果较真的话,事务回滚还是相当重要的。个人表示首先需要@Transactional注释,尽量在类或者方法,不要在接口,因为一旦在接口,那么必须实现接口才可以。可以在try-catch的catch块中使用TransactionAspectSupport.currentTransactionStatus.setRollbackOnly()。

Bug7:超级无敌BUG,第一次见到的时候整个人都是蒙圈的。

情形大概是这样:点了表单提交按钮,突然跳出404页面,然后告诉你请求是非法的。

遇到这种情况,我的第一反应是,先打印出来看看,发生了什么。然而。。控制台什么输出都没有,是空的。。。。

然后表示项目到底怎么了。后来发现是属性不匹配导致的。因为我表单在提交的时候自动转换为了对应的JavaBean,但是一旦JavaBean属性类型与提交时的内容类型不一致就会遇到这种情况。更关键的是SpringMVC会把这个报错吃掉,不会显示在控制台上。所有,遇到这种问题只有一个方案,那就是耗费自己的眼力,不断去人工审查。

当然也有那种属性都对得上还出现这个问题的。那你就要看有木有什么单选框、复选框、下拉框、时间选择框什么的,在网页上按F12审查元素,看那里面的数据的value是不是正常的。有可能是你的单选框、复选框、下拉框、时间选择框数据是ajax获取的,然后value并没有更新,全是undefined。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值