コンピュータクワガタ

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

Spring MVC 4.1 No. 034 form:passwordタグ

form:passwordタグは、HTMLの<input type="password">タグを生成します。

指定できる属性はshowPassword以外はform:inputと同じです。

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

属性 説明
accesskey HTML標準のaccesskey属性
alt HTML標準のalt属性
autocomplete HTML標準のautocomplete属性
cssClass HTML標準のclass属性
cssStyle HTML標準のsytle属性
dir HTML標準のdir属性
disabled HTML標準のdisabled属性
id HTML標準のid属性
lang HTML標準のlang属性
maxlength HTML標準のmaxlength属性
readonly HTML標準のreadonly属性
size HTML標準のsize属性
tabindex HTML標準のtabindex
title HTML標準のtitle属性

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

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

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

属性 説明
cssErrorClass Validationのエラー時のclass属性
htmlEscape HTMLのエスケープをするかどうか。デフォルトはtrue
path 関連付けるModelの名前
showPassword パスワードを表示(value属性に出力)するか

コントローラで使う、Modelです。パスワードのみを格納します。

package com.example.spring.controller.c034;

public class C034Model {
    private String password;

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

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

package com.example.spring.controller.c034;

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

@Controller
@RequestMapping("/c034")
public class C034Controller {
    @RequestMapping("/password")
    public String password(Model model) {
        C034Model c034Model = new C034Model();
        ;
        c034Model.setPassword("password");
        model.addAttribute("c034Model", c034Model);
        return "c034/password";
    }
}

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

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

<%@page contentType="text/html; charset=utf-8" %><%--
--%><!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>サンプル</title>
 </head>
 <body>
password: <form:password path="c034Model.password" /><br>
showPassword=true: <form:password path="c034Model.password" showPassword="true" /><br>
 </body>
</html>

showPasswordを設定しない場合にはpath属性の値は出力されません。逆にshowPasswordをtrueにするとvalueに値が出力されます。

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

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