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 に答える