Spring MVC 4.1 No. 038 form:radiobuttonタグ
form:radiobuttonタグは、HTMLの<input type="radio">タグを生成します。
その要素の内、単純にHTMLの属性に置き換えられるものは、以下の属性です。cssClassやcssStyleはそれぞれclass、style属性に置き換えられます。
属性 | 説明 |
---|---|
accesskey | HTML標準のaccesskey属性 |
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要素を作成し、チェックボックスと関連付ける |
path | 関連付けるModelの名前 |
使用するモデルです。ラジオボタンの初期値として利用します。
package com.example.spring.controller.c038; public class C038Model { private String tel; // setter、getterは省略 }
サンプルのコントローラです。
package com.example.spring.controller.c038; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller @RequestMapping("/c038") public class C038Controller { @RequestMapping("/radiobutton") public String radiobutton(Model model) { C038Model c038Model = new C038Model(); c038Model.setTel("mobile"); model.addAttribute("c038Model", c038Model); return "c038/radiobutton"; } @RequestMapping("/radiobuttonRecv") public String radiobuttonRecv(@RequestParam String tel, Model model) { model.addAttribute("recvData", tel); return "c038/radiobuttonRecv"; } }
コントローラではformで利用する値をModelに格納しています。
カスタムタグを使用しているJSPです。
<%@page contentType="text/html; charset=utf-8" %><%-- --%><!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>サンプル</title> </head> <body> <form action="radiobuttonRecv"> <form:radiobutton path="c038Model.tel" label="固定電話" value="home" /><br> <form:radiobutton path="c038Model.tel" label="携帯電話" value="mobile" /><br> <form:radiobutton path="c038Model.tel" label="なし" value="nothing" /><br> <input type="submit" value="送信"> </form> </body> </html>
受信するradiobuttonRecv.jspです。
<%@page contentType="text/html; charset=utf-8" %><%-- --%><!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>サンプル</title> </head> <body> 受信データ: <c:out value="${recvData}" /><br> </body> </html>
path属性で、モデルの値とタグを関連付けます。
実際に動作させ、出力されるHTMLは以下のようになります(見やすくするために改行を入れています)。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>サンプル</title> </head> <body> <form action="radiobuttonRecv"> <input id="tel1" name="tel" type="radio" value="home"/><label for="tel1">固定電話</label><br> <input id="tel2" name="tel" type="radio" value="mobile" checked="checked"/><label for="tel2">携帯電話</label><br> <input id="tel3" name="tel" type="radio" value="nothing"/><label for="tel3">なし</label><br> <input type="submit" value="送信"> </form> </body> </html>
label属性を指定していると、HTMLのlabel要素が出力されます。
ソースは https://github.com/kuwalab/spring-mvc41 にあります。タグ036が今回のサンプルです。
まとめ http://kuwalab.hatenablog.jp/entry/spring
最初 http://kuwalab.hatenablog.jp/entry/spring_mvc41/001
前回 http://kuwalab.hatenablog.jp/entry/spring_mvc41/037
次回 http://kuwalab.hatenablog.jp/entry/spring_mvc41/039