Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SpringMVC中拦截控制器方法并处理传递的参数?_Spring_Spring Mvc_Parameters - Fatal编程技术网

如何在SpringMVC中拦截控制器方法并处理传递的参数?

如何在SpringMVC中拦截控制器方法并处理传递的参数?,spring,spring-mvc,parameters,Spring,Spring Mvc,Parameters,我如何在SpringMVC中截取控制器方法并摆弄Spring框架传递的给定参数 示例 @PostMapping(consumes = "multipart/form-data") public ResponseEntity<?> createPerson( CreatePersonCommand command ) { // ... } 您可以使用拦截器,方法preHandle(): 更新: 我不知道如何准确地执行此操作,但您可以尝试使用处理程序对象: public bo

我如何在SpringMVC中截取控制器方法并摆弄Spring框架传递的给定参数

示例

@PostMapping(consumes = "multipart/form-data")
public ResponseEntity<?> createPerson( CreatePersonCommand command ) {

   // ...
}

您可以使用拦截器,方法
preHandle()

更新: 我不知道如何准确地执行此操作,但您可以尝试使用处理程序对象:

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){
  ((HandlerMethod)handler).getMethodParameters()...
}

让我知道您的最终解决方案:)

使用Spring,您可以使用aspects,简单的例子如下:

@方面
@组成部分
公共类预处理SPECT{
@在(“执行(*com.your.controller..*controller.*(..)”)之前
控制器之前的公共无效(连接点连接点){
//这是你的密码
//您可以访问请求、参数、仅为一个控制器添加方面、多个控制器,。。。
}
}

@Niki我已经开始以正确的方式使用处理程序,但方法“getMethodParameters”似乎会导致Java反射,而Java反射无法获得实际的参数值。但我还得挖更多@Niki我已经将解决方案作为一个方面进行了实现。它像一个符咒一样工作!:)太好了:)我有时间也会试试的谢谢你的建议!我希望SpringMVC更像是一个开箱即用的解决方案。我将玩方面:)
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){
  ((HandlerMethod)handler).getMethodParameters()...
}