我有这个方法:
@GetMapping(value = "warehouses/{warehouseId}/issues", headers = BOOTGRID_REQUEST)
public ResponseEntity<BootgridResponse<T>> listWarehouseIssues(
@PathVariable final long warehouseId,
@RequestParam(required = false, defaultValue = ISSUE_STATE_ALL) final String state,
@Valid @ModelAttribute final BootgridRequest request,
final BindingResult bindingResult
)
在所有情况下都工作得很好,直到我注册了一个将请求包装到包装器中的新过滤器。
@Bean
public FilterRegistrationBean someFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(crossScriptingFilter());
registration.addUrlPatterns("/*");
registration.setName("XFilter");
registration.setOrder(1);
return registration;
}
@Bean
public Filter crossScriptingFilter() {
return new CrossScriptingFilter();
}
因为,当请求参数中没有指定时,参数“state”被赋予null。
当我删除过滤器注册时,我得到默认值而不是null。
我在这里遗漏了一块,我不明白为什么不给出默认值?
答案 0 :(得分:0)
我认为缺少“价值”属性。此值表示请求参数的名称:
@RequestParam(value = "state", required = false, defaultValue = ISSUE_STATE_ALL) final String state
答案 1 :(得分:0)
我似乎遇到了环境问题,其他服务也有默认值,但已提供。
过了一会儿,似乎所有人都恢复正常并再次工作。
这个问题也可以删除,因为它没有为读者提供任何具体内容。