Lasta Thymeleaf では、DBFluteの区分値(CDef)で簡単にセレクトボックスを作成することができます。
関連記事として、区分値をLasta thymeleafで使用する方法は、↓の記事に書いています。
DBFluteの区分値(CDef)をLasta Thymeleafで利用するには「#cls」を使用します。
関連記事:Last...
※この記事内でサンプルとして使う区分値は以下です。
# classificationDefinitionMap ; Publisher = list:{ ; map:{ ; topComment=出版社; codeType=String ; groupingMap = map:{ ; hitotsubashi = map:{ ; groupComment = 一ツ橋グループ ; elementList = list:{Shueisha; Shogakukan} } } } ; map:{code=SHU; name=Shueisha ; alias=集英社} ; map:{code=KOD; name=Kodansha ; alias=講談社} ; map:{code=SHO; name=Shogakukan ; alias=小学館} ; map:{code=KAD; name=Kadokawa ; alias=角川書店} }
実行環境:
LastaFlute(1.0.0)
Lasta Thymeleaf(0.3.1)
DBFlute(1.1.4)
基本編
la:optionCls=”区分値名”
指定した区分値の全ての値でセレクトボックスを作成します。
la:property に指定したフォーム値に値を設定していると、初期選択されます。
/** java form */ public class ClassificationOptionclsForm { public Publisher publisher = Publisher.Shogakukan; }
<!-- HTML --> <select la:property="publisher"> <option></option> <option la:optionCls="'Publisher'"></option> </select>
実行結果
<!-- HTML 出力結果 --> <select name="publisher"> <option></option> <option value="SHU">集英社</option> <option value="KOD">講談社</option> <option selected="selected" value="SHO">小学館</option> <option value="KAD">角川書店</option> </select>
la:optionCls=”区分値名.グループ名”
区分値のグループの値のみでセレクトボックスを作成します。
/** java form */ public class ClassificationOptionclsForm { public Publisher publisher = Publisher.Shogakukan; }
<!-- HTML --> <select la:property="publisher"> <option></option> <option la:optionCls="'Publisher.hitotsubashi'"></option> </select>
実行結果
<!-- HTML 出力結果 --> <select name="publisher"> <option></option> <option value="SHU">集英社</option> <option selected="selected" value="SHO">小学館</option> </select>
応用編
表示内容をカスタムしたい場合
th:text を指定することで、表示内容をカスタムすることができます。
/** java form */ public class ClassificationOptionclsForm { public Publisher publisher = Publisher.Shogakukan; }
<!-- HTML --> <select la:property="publisher"> <option></option> <option la:optionCls="prod : 'Publisher'" th:text="${prod.code()} + ' : ' + ${prod.alias()}"></option> </select>
実行結果
<!-- HTML 出力結果 --> <select name="publisher"> <option></option> <option value="SHU">SHU : 集英社</option> <option value="KOD">KOD : 講談社</option> <option selected="selected" value="SHO">SHO : 小学館</option> <option value="KAD">KAD : 角川書店</option> </select>