Grails的.来自params的变量中分配了不正确的值

use*_*291 1 grails groovy

当我尝试从params分配值时,它现在工作不正确.

System.out.println(params.test)   // I see 0
int test = params.test
System.out.println(test)   // I see 48
Run Code Online (Sandbox Code Playgroud)

一些我的整数和浮点变量赋值+ 48

一些boolean valiable都指定为true

我尝试了改变grails版本(2.3.7/2.3.4),重建项目.但它的工作是错误的.可能是我改了一些设置?

dma*_*tro 7

这里没有错.

params.test 有字符串值 0

params.test = "0"
Run Code Online (Sandbox Code Playgroud)

当它被类型转换为int它的ascii值48被分配给test

assert 48 == (int)"0"
Run Code Online (Sandbox Code Playgroud)

要从中获取字符串"0"的int值,params可以使用适用的原始方法params

params.int('test') // int 0
Run Code Online (Sandbox Code Playgroud)

类似的布尔值

params.boolean('test') //boolean true/false
Run Code Online (Sandbox Code Playgroud)