gpt4 book ai didi

java - Spring MVC Double 的默认值

转载 作者:行者123 更新时间:2023-12-02 04:38:24 25 4
gpt4 key购买 nike

我正在尝试构建一个像这样的 Controller :

@RequestMapping(method = {RequestMethod.GET}, value = "/users/detail/activities.do")
public View foo(@RequestParam(value = "userCash", defaultValue="0.0") Double userCash)
{
System.out.println("foo userCash=" + userCash);
}

这工作正常:

http://localhost/app/users/detail/activities.do?userCash=123&

但在这个 userCash==null 尽管有默认值

http://localhost/app/users/detail/activities.do?userCash=&

从一些挖掘来看,第一个似乎是像这样的编辑器绑定(bind)工作的:

binder.registerCustomEditor(Double.class, new CustomNumberEditor(Double.class, false));

问题是第二个参数(即 false)定义是否允许空白值。如果我将其设置为 true,则系统会认为空白输入有效,因此我会得到一个 null Double 类。

如果我将其设置为 false,则系统会因空白输入字符串而卡住:

org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'double'; nested exception is java.lang.NumberFormatException: empty String

有人知道如何让defaultValue适用于 double 吗?

最佳答案

您可能必须使用自己的自定义编辑器来实现您的转换逻辑。

从请求的角度来看,像/activities.do?userCash=& 这样的 url 意味着 userCash 参数实际上是一个空白或空字符串(因此您看到的错误)。

关于java - Spring MVC Double 的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2823645/

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