Enumからセレクトボックスを作成しました。今回は作成したセレクトボックスをパラメータとして受け取る方法です。表示用にThymeleafは使用しています。JAX-RSとThymeleafの設定は前回の記事を参照してください。前回のソースを使いまわします。</body></html>HTML部分については前回から変更があります。selectタグにname属性を付与しました。変換対象となるEnumです。}}idとlabelを持つEnumです。ここら辺は前回の記事と変わりないです。違うのはfromStringというメソッドが増えていることです。fromStringというString型のパラメータを一つ持つstaticなメソッドがあるとJAX-RSでは自動で変換してくれる仕様です。Properties」に書かれています。以下、仕様からの引用です。used.メソッド名はvalueOfでも良いそうです。Enumの場合はデフォルトでvalueOfメソッドが定義されているため、valueOfでは変換ができない場合はfromStringメソッドを使うことになります。今回のサンプルではidをキーにして取得しているので、valueOfでは対応できないパターンです。【実際に動かしてみる】ここからは実際に動かすソースになります。}}FormParamアノテーションを使って、Categoryクラスの値をパラメータとして受け取ります。受け取ったパラメータを表示用のBeanに設定して、Viewableを生成して返却しています。th:text="${item.selected.label}"></span>]です。</body></html>リソースクラスで設定した内容を表示しています。画面のセレクトボックスから[サーバ]を選択して[送信]ボタンをクリックします。すると下のような画面が表示されます。送信ボタンがある画面からパラメータが渡されて、JAX-RSがちゃんと変換していることがわかりますね。【まとめ】JAX-RSでは難しい設定をせずにEnumへの変換ができました。今回のサンプルではEnumを例にしましたが、valueOf/fromStringメソッドさえ作れば普通のクラスでも変換できそうですね。(そこらへんは試していませんが・・・・)メソッド名がvalueOf/fromStringメソッドと固定されてしまうので、アノテーションのほうがよかったんじゃないかなぁとは個人的に思ったり。現状の仕様で不便は感じないと思いますが。結論としてはJAX-RSではEnumでのやり取りが簡単なので、Enumを使いたい場面では迷わず使ってしまって良さそうですね。月別アーカイブはてなブログをはじめよう!gloryofさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。