Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails/Groovy:URL参数(最大值,偏移量)NumberFormatException在为空/字符串时引发_Url_Grails_Groovy_Params_Parseint - Fatal编程技术网

Grails/Groovy:URL参数(最大值,偏移量)NumberFormatException在为空/字符串时引发

Grails/Groovy:URL参数(最大值,偏移量)NumberFormatException在为空/字符串时引发,url,grails,groovy,params,parseint,Url,Grails,Groovy,Params,Parseint,在控制器中 params.max = Math.min(params?.max?.toInteger() ?: 10, 20) params.offset = params?.offset?.toInteger() ?: 0 如果您输入以下URL /books?offset=10&max= //error /books?offset=10&max=sdf //error /books?offset=&max=10

在控制器中

 params.max = Math.min(params?.max?.toInteger() ?: 10, 20)
 params.offset = params?.offset?.toInteger() ?: 0
如果您输入以下URL

/books?offset=10&max=              //error
/books?offset=10&max=sdf          //error
/books?offset=&max=10            //works
/books?offset=adsfa&max=10      //error


java.lang.NumberFormatException: For input string: "asdf"

        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)

        at java.lang.Integer.parseInt(Integer.java:449)

        at java.lang.Integer.valueOf(Integer.java:554)
是否有一行groovy答案来检查url参数中的空/字符串字符?

看看参数和标记属性的空安全转换器是在哪里引入的

你应该换台词

params.max = Math.min(params?.max?.toInteger() ?: 10, 20)
params.offset = params?.offset?.toInteger() ?: 0
..至以下代码:

params.max = Math.min(params.int('max') ?: 10, 20)
params.offset = params.int('offset') ?: 0
请看一下参数和标记属性的空安全转换器是在哪里引入的

你应该换台词

params.max = Math.min(params?.max?.toInteger() ?: 10, 20)
params.offset = params?.offset?.toInteger() ?: 0
..至以下代码:

params.max = Math.min(params.int('max') ?: 10, 20)
params.offset = params.int('offset') ?: 0