Java 从HttpServletRequest转换为WebRequest
我已经使用Spring初始值设定项、嵌入式Tomcat、Thymeleaf模板引擎和作为可执行JAR文件的包生成了一个Spring引导web应用程序 使用的技术: 弹簧靴2.0.0.M6,Java 8,maven 我在班上的第一节课上有这个方法Java 从HttpServletRequest转换为WebRequest,java,spring,spring-mvc,spring-boot,Java,Spring,Spring Mvc,Spring Boot,我已经使用Spring初始值设定项、嵌入式Tomcat、Thymeleaf模板引擎和作为可执行JAR文件的包生成了一个Spring引导web应用程序 使用的技术: 弹簧靴2.0.0.M6,Java 8,maven 我在班上的第一节课上有这个方法 private Map<String, Object> getErrorAttributes(HttpServletRequest request,
private Map<String, Object> getErrorAttributes(HttpServletRequest request,
boolean includeStackTrace) {
RequestAttributes requestAttributes = new ServletRequestAttributes(request);
return this.errorAttributes.getErrorAttributes(request, includeStackTrace)
}
您不需要将
HttpServletRequest
强制转换为WebRequest
。您需要的是在控制器方法中使用WebRequest
@GetMapping("/endpoint")
public .. endpont(HttpServletRequest request, WebRequest webRequest) {
getErrorAttributes(request, webRequest, true);
}
并更改为getErrorAttributes
方法
private Map<String, Object> getErrorAttributes(HttpServletRequest request, WebRequest webRequest,
boolean includeStackTrace) {
RequestAttributes requestAttributes = new ServletRequestAttributes(request);
return this.errorAttributes.getErrorAttributes(webRequest, includeStackTrace)
}
私有映射getErrorAttributes(HttpServletRequest请求、WebRequest WebRequest、,
布尔值(includeStackTrace){
RequestAttributes RequestAttributes=新的ServletRequestAttributes(请求);
返回此.errorAttributes.getErrorAttributes(webRequest,includeStackTrace)
}
您可以删除RequestAttributes RequestAttributes=new ServletRequestAttributes(请求);以及getErrorAtributes的HttpServletRequest如果任何人仍然有兴趣从HttpServletRequest获得WebRequest
,下面是如何:WebRequest WebRequest=new ServletWebRequest(request)代码>反之亦然。来自WebRequest的HttpServletRequest
private Map<String, Object> getErrorAttributes(HttpServletRequest request, WebRequest webRequest,
boolean includeStackTrace) {
RequestAttributes requestAttributes = new ServletRequestAttributes(request);
return this.errorAttributes.getErrorAttributes(webRequest, includeStackTrace)
}