動的URLの表示方法

今回のお題

今回のお題は「動的URLの表示方法」です。

これまでにレコード保存レコード一覧を実装してきました。

次は順番的には詳細表示なのですが、その準備段階として「動的URL」についてまとめておきます。

目次

  • 動的URLとは
  • 動的URLの具体例
  • thymeleafにおける変数と文字列の結合方法
  • 動的URLの表示

動的URLとは

動的URLとは、「レコードによってURLの一部が変化するようなもの」を指します。

webサイトで、ユーザーの投稿内容を反映して表示されるものが変化するサービスを動的サイト、変化しないものを静的サイトと呼びますよね。

同じように、対応しているレコードに応じてURLが変化するものを動的URLと呼びます。

動的URLの具体例

動的URLの具体例は、ユーザー詳細・編集・削除などへのリンクですね。

例えば、Railアプリのresourcesオプションでユーザー詳細へのURLを自動生成すると、"/users/user_id"となります。

これをprefixやヘルパーメソッドなどを使わずに実装すると、

<a href="/users/#{@user.id}">

というように、文字列と変数を結合させた表記を使うことになります。

URLの中にカラムの値が含まれているので当然と言えば当然ですよね。

なので、次項ではthymeleaf内で変数と文字列を結合させる方法を見ていきます。

thymeleafにおける変数と文字列の結合

変数と文字列の結合は以下のように行います。

<label th:for="'user_'+${user.id}">

固定文字列として扱いたい部分(user_)をシングルクォートで、変数部分をいつも通りに${}で囲めば変数と文字列が結合されます。

動的URLの表示

ここまでくれば、ほとんど完成したも同然ですね。

<a th:href="@{'/user/'+${user.userId}}">

とすれば完成です。

{}が二重になることにだけ注意してください。