DBFluteの区分値でセレクトボックスを簡単に作成する方法【LastaThymeleaf】

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>