一些没想明白的地方。

一、没想明白的地方

(1)请求方式

不知道为什么不用GET的方式请求接口,这样不是更加简单吗。

不仅不需要用到HiddenHttpMethodFilter,而且也不需要使用jquery,也不需要写个隐藏表单。

我个人觉得,用GET请求方式,写一个对应的controller接口方法,传入对应的id值,执行方法移除map中对应的id,然后重定向至emps,实现的效果完全一样,难度却会大大下降。

确实按照RESTFUL,删除确实应该用DELETE请求,但是确实太麻烦了。感觉spring mvc的特殊请求方式真的做得不好。

(2)<mvc:annotation-driven></mvc:annotation-driven>配置的作用

这个配置有点让我莫名其妙,没有搞清楚他的作用。反正没有这个配置就跑不起来。

尝试理解了一下:

感谢:http://my.oschina.net/moziqi/blog/306568

为了解决静态资源访问的问题,servlet改成了拦截所有请求,即/,并添加了默认的servlet,这时候*.do请求不能被控制器捕捉了,页面错误为404。直到添加了<mvc:annotation-driven/>之后,.do请求才又能被正确捕捉和处理。

是什么原因造成这种区别的呢?

为什么一开始没用<mvc:annotation-driven/>的时候可以,添加了默认servlet之后就不行了呢?

最后的配置如果没有<mvc:annotation-driven/>,那么所有的Controller可能就没有解析,当所有请求都没有匹配的处理请求类,就都去<mvc:default-servlet-handler/>,即default servlet处理了。

添加上<mvc:annotation-driven/>后,相应的do请求被Controller处理,而静态资源因为没有相应的Controller就会被default servlet处理。总之没有相应的Controller就会被default servlet处理就ok了。

感觉很好地解释了昨天的问题。

三、总结

我目前静态资源的配制方法是:

不清楚原理是不是差不多。

现在看来,配置这种东西再去纠结也没啥用,因为你搞了半天,以为自己理解了,更好的spring boot又出来了。所以配置只要能跑就行。

1 对 “spring mvc 模拟crud删除员工信息(二)”的想法;

发表评论

电子邮件地址不会被公开。 必填项已用*标注