2010-10-24 37 views
1

dans le contrôleurGrails/Groovy: params URL (max, offset) NumberFormatException jetés quand blanc/chaînes

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

si vous entrez dans les urls suivantes

/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) 

Y at-il une ligne groovy répondre pour vérifier les caractères null/string dans les paramètres url?

Répondre

4

Jetez un oeil à la Release Notes for Grails 1.2 où les convertisseurs de sécurité null pour les paramètres et les attributs tag ont été introduits.

Vous devez changer vos lignes ..

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

..pour le code suivant:

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