フォームデータがPOSTされたときのサーバ側でのフォームデータ取得方法 はわかったのだが、GETのときのURLの後ろに追加されるパラメータはどう取得すればいいのか?
version 確認:
$ mn --version
Micronaut Version: 2.5.7
それではプロジェクトを作成して、item コントローラをつくるところまで:
$ mn create-app myapp --build=gradle --lang=kotlin
$ cd myapp
$ mn create-controller item
生成された雛形の src/main/kotlin/myapp/ItemController.kt を修正します。
@Get(uri="/{path}", produces=["text/html"])
fun index(path: String, @QueryValue username: String): String {
return listOf(
"<html>",
"<body>",
path,
",",
username,
"</body>",
"</html>").joinToString(System.getProperty("line.separator"))
}
QueryValue クラスを忘れずにインポートします。
import io.micronaut.http.annotation.QueryValue
これは http://localhost/item/hello?username=taro のようなリクエストを想定しています。
実際にブラウザにこのURLをいれて実行してみましょう
hello, taro
と表示されました。
完成したコード ItemController.kt:
package myapp
import io.micronaut.http.annotation.Controller
import io.micronaut.http.annotation.Get
import io.micronaut.http.HttpStatus
import io.micronaut.http.annotation.QueryValue
@Controller("/item")
class ItemController {
@Get(uri="/{path}", produces=["text/html"])
fun index(path: String, @QueryValue username: String): String {
return listOf(
"<html>",
"<body>",
path,
",",
username,
"</body>",
"</html>").joinToString(System.getProperty("line.separator"))
}
}