gpt4 book ai didi

java - 在 Spring MVC Controller 中避免 NumberFormatException

转载 作者:搜寻专家 更新时间:2023-11-01 03:32:56 25 4
gpt4 key购买 nike

在我的 Spring MVC Controller 中,我有一个这样的方法:

public String myMethod(@RequestParam(defaultValue="0") int param) { ... }

当我传递一个字符串作为我的 param 的值时,我显然得到了一个 NumberFormatException:

Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: "test"

这很清楚...

所以我试图找到一种方法,在发生此错误时将用户重定向到默认页面。有实现此目标的通用方法吗?

目前我正在考虑使用 String 代替 int 来映射我的 param,检查这是否可解析到 int 然后切换到适当的逻辑,但这似乎是一种解决方法,而不是解决方案......

有没有更优雅的方法来处理这个问题并为我的 param 保持正确的类型绑定(bind)?

最佳答案

我终于解决了添加一个 CustomNumberEditor 的问题:

@InitBinder
public void registerNumbersBinder(WebDataBinder binder) {
binder.registerCustomEditor(Integer.class, new CustomNumberEditor(Integer.class, true){
@Override
public void setAsText(String text) throws IllegalArgumentException {
try{
super.setAsText(text);
}catch (IllegalArgumentException ex){
setValue(0);
}
}
});
}

关于java - 在 Spring MVC Controller 中避免 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43324987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com