如何将spring mvc拦截器中的参数传到Contraoller中让它自动封装参数值

a771685180 2017-08-04 10:26:56
在HandlerInterceptor中的preHandle方法 中可以将请求参数重新定义吗 去请求接口, 让Contraoller自动封装参数。
因为我是在preHandle()方法中 拦截下请求参数 将它解密, 解密后的参数如何丢给Contraoller封装参数值呢?

求大神
...全文
1336 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
解开者 2017-08-04
  • 打赏
  • 举报
回复
这不应该用拦截器,应该用自定义DataBinder。 使用@InitBinder注解可以覆盖Spring默认的DataBinder,可以将特定类型的参数做定制处理。
minemine0418 2017-08-04
  • 打赏
  • 举报
回复
引用 2 楼 a771685180 的回复:
[quote=引用 1 楼 minemine0418 的回复:] request请求域中可以拿得到的
比如一段URL: http://localhost:8080/cust/getcustid?custid=123456&pwd=123456 我有一个Contraoller方法: @ResponseBody @RequestMapping(value="/getcusttokenid",method=RequestMethod.POST) public String getcustid(String custid,String pwd) { } 正常请求Contraoller的话,URL?后的请求参数都会自动封装到 getcustid(String custid,String pwd) 的参数中,自动对应。 我现在在拦截器中获取了一段加密的字符串,解密后就是custid=123456&pwd=123456, 如何在拦截器中将它又丢给 Controller,并且还是自动封装的,getcustid(String custid,String pwd)的 custid和pwd会自动封装值[/quote] 你解密过后把custid和pwd通过request.setsetAttribute(name,value);存到请求域中就行了
a771685180 2017-08-04
  • 打赏
  • 举报
回复
引用 1 楼 minemine0418 的回复:
request请求域中可以拿得到的
比如一段URL: http://localhost:8080/cust/getcustid?custid=123456&pwd=123456 我有一个Contraoller方法: @ResponseBody @RequestMapping(value="/getcusttokenid",method=RequestMethod.POST) public String getcustid(String custid,String pwd) { } 正常请求Contraoller的话,URL?后的请求参数都会自动封装到 getcustid(String custid,String pwd) 的参数中,自动对应。 我现在在拦截器中获取了一段加密的字符串,解密后就是custid=123456&pwd=123456, 如何在拦截器中将它又丢给 Controller,并且还是自动封装的,getcustid(String custid,String pwd)的 custid和pwd会自动封装值
minemine0418 2017-08-04
  • 打赏
  • 举报
回复
request请求域中可以拿得到的

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧