在 Controller 中

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

如果您输入以下网址
/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) 

是否有一行常规答案来检查url参数中的null / string字符?

请您参考如下方法:

看看Release Notes for Grails 1.2,其中引入了用于参数和标记属性的null安全转换器。

你应该换行..

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 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!