我发现类InvocableHandlerMethod.InvokeForRequest将从request获取请求参数,并调用controller类以获取返回值。我应该修改什么方法来将参数写入控制台?我想扩展ServletInvocableHandlerMethod并重写方法invokeForRequest,但我不能调用getMethodArgumentValues,因为它是私有的。我是否应该复制ServletInvocableHandlerMethod和InvocableHandlerMethod的类来修改私有方法?或者有没有另一种方法来记录请求和响应参数而不需要方面?
只需创建拦截器
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class LoggingInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// log here
return true; // let go further
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
// log here
}
}
并将其注册
// example for Spring MVC annotation-based configuration
public class YourWebConfig extends WebMvcConfigurer {
...
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoggingInterceptor());
}
...
}
问题内容: 在Spring MVC中,将请求 参数 绑定到处理请求的方法参数很容易。我只是用。但是我可以对request 属性 做同样的事情吗?当前,当我想访问request 属性时 ,我必须执行以下操作: 但是我真的很想使用这样的东西: 不幸的是,这种方式行不通。我可以以某种方式扩展Spring功能并添加自己的“绑定器”吗? 编辑 (我要实现的目标) :我将当前登录的用户存储在request属性
我依赖于retrofit2,该retrofit2配置为使用RxJava包装响应,并使用GSon解析它们。 我在用Reterfit做Rest服务。 search REST服务返回一个JSON null 它为我的接口生成服务,并使用解析响应,并用包装它。 然后我获得服务: 请注意,我不编写这个服务的代码,因为retrofit工作时,它使用我的接口()注释自动生成服务。 如果用户使用执行搜索调用,则不会
因此,我的控制器中有一个GET方法,带有可选的请求参数: 当我试图用未知参数调用此请求时 我想在请求有未知参数时引发一个异常,比如这里的myunknownparam。 虽然目前我的所有参数都是可选的,但我的服务返回的结果与所有参数设置为null时相同。
问题内容: Spring MVC-如何在Spring控制器中获取地图中的所有请求参数?范例网址: 我不知道attr1,att2和attr4的名称。 我希望能够做类似的事情(或类似的,不在乎,只要我可以访问Map的请求参数名-> value: 如何使用Spring MVC做到这一点? 问题答案: 尽管其他答案是正确的,但肯定不是直接使用HttpServletRequest对象的“spring方式”。
我看到了带有各种参数的Spring MVC控制器处理程序方法。例如: null 所以, 什么决定参数列表? 为什么Spring controller处理程序方法没有固定签名? Spring如何处理这些变化的参数列表? 是否可以输入任意类型的参数?
问题内容: 在此期间,我正在研究Spring MVC展示示例(可从STS dasboard下载),并对示例有一些简单的问题: 1)在我的页面中,我具有以下链接: 通过此链接可以看到,我正在执行一个HTTP GET请求,该请求的“ foo”参数包含值:“ bar”。 此HTTP请求由控制器类MappingController的以下方法处理: 此方法管理具有名为“ foo”的参数的HTTP请求(仅类型