【问题标题】:Grails. Incorrect values are assigned in variables from params圣杯。在 params 的变量中分配了不正确的值
【发布时间】:2014-04-18 07:38:21
【问题描述】:

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

System.out.println(params.test)   // I see 0
int test = params.test
System.out.println(test)   // I see 48

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

一些布尔值全部赋值为真

我尝试更改 grails 版本(2.3.7/2.3.4),重建项目。但它工作错误。 我可以更改一些设置吗?

【问题讨论】:

    标签: grails groovy


    【解决方案1】:

    这里没有错。

    params.test 具有字符串值0

    params.test = "0"
    

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

    assert 48 == (int)"0"
    

    要从 params 获取字符串“0”的 int 值,您可以使用适用于 params 的原始方法

    params.int('test') // int 0
    

    布尔值类似

    params.boolean('test') //boolean true/false
    

    【讨论】:

    • 如何发送真实价值?我尝试将 int test = params.test 写为 int。它也不起作用。
    • 如果test 具有字符串trueparams.boolean('test') 将给出布尔值true。查看我的更新。
    • 如何使用多参数?我使用 List test1 = params.list('test1') 和 List test2= params.list('test2') 并在循环中分配变量。
    猜你喜欢
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 2020-04-17
    • 1970-01-01
    相关资源
    最近更新 更多