java - Spring - 处理请求参数中的空值

标签 java spring null request http-request-parameters

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/

相关文章:

java - 如果我在 web.xml/session-config 中使用 -1 , session 超时永远不会发生

Javascript parseFloat 和空值

java - 带有日期字段的对象的 Spring 验证失败

java - list 合并失败并出现多个错误,请参阅日志错误

java - 多个 servlet 是否可以绑定(bind)到同一个数据源 (JNDI)?

swift - 在枚举中生成随机类型的静态函数会导致崩溃并出现错误 "unexpectedly found nil when unwrapping an Optional value"

ios - NSManagedObjects 的动态属性在获取后为空

java - 为什么 spring 找不到我的 bean?

java - 请求的资源不可用 - Spring MVC

java - 覆盖子类实体中@MappedSuperclass 的继承属性(例如继承关系表名、列名...等)