2

如何在路由定义中使用布尔值?

如果我用这种方式,

GET     /user/:userName   controllers.AppController.user(userName, registerDone:Boolean?=0)

它抛出这个错误:

[error]  found   : Int(0)
[error]  required: Boolean

如果我用这种方式,

GET     /user/:userName   controllers.AppController.user(userName, registerDone:Boolean?=false)

它抛出这个错误:

错误请求:/user/aajjblack?registerDone=true,无法将参数 registerDone 解析为布尔值:应为 0 或 1

控制器:

public static Result user(final String userName, Boolean registerDone) {
}
4

1 回答 1

3

Int改用...

GET  /user/:userName  controllers.AppController.user(userName, registerDone: Int?=0)

行动:

public static Result user(final String userName, int registerDone) {
    if(registerDone == 0){
        return badRequest();
    }

    // do something with registered user...
    return ok();
}

它是任何类型布尔值的最简单替换,因为您可以检查是否registerDone大于 0(并且它仍然保持类型安全)。

于 2013-01-18T20:40:38.193 回答