Spring (4.3.9):
从客户端作为 null 发送到服务器的请求参数,当通过 request-param 获取时,null 对象在请求中被视为字符串 null:
@RequestParam(value = key, required = false) Integer key
至于解决方案,我可以通过客户端处理这个问题,并首先阻止 null 被传递,但我无法从中得到明确的解决方案( JavaScript: Formdata append null value - NumberFormatException )。
任何人都可以帮我看看 Spring 框架中的哪个类或方法可以将 null 对象转换为字符串 null。
最佳答案
无论您为@RequestParam
提供什么内容默认情况下它会被视为字符串,这就是原因 null
视为 "null"
字符串。在Spring框架中Converter<S, R>
和ConverterFactory<S, R>
将从 String
转换到相应的类型。
您可以编写自定义转换器并将其添加到 spring 注册表 here
public class StringToIntegerConverter implements Converter<String, Integer> {
@Override
public Integer convert(String from) {
// custom logic
}
}
注册
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new StringToIntegerConverter());
}
}
关于java - Spring - 处理请求参数中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53214921/