コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

Spring MVC 4.1 No. 041 form:optionタグ

form:optionタグは、HTMLの<option>タグを生成します。このタグは、form:selectタグの中に書く必要があります。

その要素の内、単純にHTMLの属性に置き換えられるものは、以下の属性です。cssClassやcssStyleはそれぞれclass、style属性に置き換えられます。

属性 説明
cssClass HTML標準のclass属性
cssStyle HTML標準のsytle属性
dir HTML標準のdir属性
disabled HTML標準のdisabled属性
id HTML標準のid属性
lang HTML標準のlang属性
tabindex HTML標準のtabindex
title HTML標準のtitle属性
value HTML標準のvalue属性

その他、JavaScriptのDOMレベル0イベントとして以下の属性が用意されています。それぞれ同名の属性になります。

属性
onblur
onchange
onclick
ondblclick
onfocus
onkeydown
onkeypress
onkeyup
onmousedown
onmousemove
onmouseout
onmouseover
onmouseup

残りがSpring用の属性になります。

属性 説明
cssErrorClass Validationのエラー時のclass属性
htmlEscape HTMLのエスケープをするかどうか。デフォルトはtrue
label HTMLのlabel要素を作成し、チェックボックスと関連付ける

コントローラで使用するモデルです。

package com.example.spring.controller.c041;

public class C041Model {
    private String selectedIsbn;

    public String getSelectedIsbn() {
        return selectedIsbn;
    }

    public void setSelectedIsbn(String selectedIsbn) {
        this.selectedIsbn = selectedIsbn;
    }
}

サンプルのコントローラです。

package com.example.spring.controller.c041;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/c041")
public class C041Controller {
    @RequestMapping("/option")
    public String option(Model model) {
        C041Model c041Model = new C041Model();
        c041Model.setSelectedIsbn("");
        model.addAttribute("c041Model", c041Model);
        return "c041/option";
    }
}

コントローラではformで利用する値をModelに格納しています。

カスタムタグを使用しているJSPです。

<%@page contentType="text/html; charset=utf-8" %><%--
--%><!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>サンプル</title>
 </head>
 <body>
  <form:select path="c041Model.selectedIsbn">
   <form:option value="123" label="よく分かるSpring"/>
   <form:option value="456" label="よく分かるJava"/>
   <form:option value="789" label="よく分かるSpring MVC"/>
  </form:select>
 </body>
</html>

実際に動作させ、出力されるHTMLは以下のようになります(見やすくするために改行を入れています)。

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>サンプル</title>
 </head>
 <body>
  <select id="selectedIsbn" name="selectedIsbn">
   <option value="123">よく分かるSpring</option>
   <option value="456">よく分かるJava</option>
   <option value="789">よく分かるSpring MVC</option>
  </select>
 </body>
</html>

ソースは https://github.com/kuwalab/spring-mvc41 にあります。タグ041が今回のサンプルです。

まとめ http://kuwalab.hatenablog.jp/entry/spring
最初 http://kuwalab.hatenablog.jp/entry/spring_mvc41/001
前回 http://kuwalab.hatenablog.jp/entry/spring_mvc41/040
次回 http://kuwalab.hatenablog.jp/entry/spring_mvc41/042