[b] 前言[/b]
在使用过程中,发现spring mvc的restful架构,有一些满足不了需求。因此研究了一下自定义注解开发满足需求。
自定义注解,可以无缝输入参数到controller中,尤其是http的put请求。
[b] 一 搭建标准的spring mvc环境[/b]
略。
[b] 二 开发注解详细过程[/b]
1.开发注解 RequestParamExtend
2.开发注解解释器 RequestParamExtendMethodArgumentResolver
3.在spring配置文件中,注册解释器
4.开发拦截器,把参数从request.getInputStream()读取出来,放到request.setAttribute中
[b] 三 扩展阅读[/b]
1.PUT request can't get parameter from request.getparameter()
2.PUT提交的参数,目前都是从request.getInputStream()中读取,因此读取一次,无法再次读取。需要放到request.Attribute中
3.PUT提交的参数,在流中读出之后,结构如下 param1=value1¶m2=value2¶m3=value3,因此需要自己解析并组装成map
4.RequestParamExtend注解与RequestParam注解完全相同,只是解释器不同,见代码中注释部分
5.推荐使用httpComponent4.1进行测试,此方法本人在生产环境中已经通过测试。
在使用过程中,发现spring mvc的restful架构,有一些满足不了需求。因此研究了一下自定义注解开发满足需求。
自定义注解,可以无缝输入参数到controller中,尤其是http的put请求。
[b] 一 搭建标准的spring mvc环境[/b]
略。
[b] 二 开发注解详细过程[/b]
1.开发注解 RequestParamExtend
2.开发注解解释器 RequestParamExtendMethodArgumentResolver
3.在spring配置文件中,注册解释器
4.开发拦截器,把参数从request.getInputStream()读取出来,放到request.setAttribute中
[b] 三 扩展阅读[/b]
1.PUT request can't get parameter from request.getparameter()
2.PUT提交的参数,目前都是从request.getInputStream()中读取,因此读取一次,无法再次读取。需要放到request.Attribute中
3.PUT提交的参数,在流中读出之后,结构如下 param1=value1¶m2=value2¶m3=value3,因此需要自己解析并组装成map
4.RequestParamExtend注解与RequestParam注解完全相同,只是解释器不同,见代码中注释部分
5.推荐使用httpComponent4.1进行测试,此方法本人在生产环境中已经通过测试。