Blog

kweb の router では KVar を意識しよう

kweb の router においては、

path("/entry/{id}") {params ->
    val id = params["id"]!!.value
    val entry = entryRepository.findById(id)
    div().text(entry.title)
}

のように書きたくなりがちだが、同一パスで path variable のみが変化した場合は KVar の変化しかおきなくて、path の callback のみが呼ばれるわけではない。

なので、以下の様に書く必要がある。

path("/entry/{id}") {params ->
    render(params["id"]!!) { id ->
        val entry = entryRepository.findById(id)
        div().text(entry.title)
    }
}