FrontPage > Spring Web MVCの覚書

Springタグライブラリ

1. spring-form.tld

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 
  • <form:form>と<form:input>
    例)
    ・・・略 
    <body>
    <form:form commandName="command">
        <form:input path="message"/>
        <input type="submit">
    </form:form>
    </body>
    </html>

    commandName="command"の場合は省略可
    また、上記は下記jspと同じ。actionには現在のurlが設定される。
    <form id="command" action="/mvc-basic/showMessage" method="post">
        <input id="message" name="message" type="text" value="${command.message}"/>
        <input type="submit">
    </form>

  • <form:checkbox>
    例)
    <form:form commandName="sampleCommand">
    	<form:checkbox path="sampleCheck1"/>true<br>
    	<form:checkbox path="sampleCheck2" value="abc"/>abc<br>
    
    	<form:checkbox path="sampleCheckArray" value="xxx"/>xxx &nbsp;
    	<form:checkbox path="sampleCheckArray" value="yyy"/>yyy &nbsp;
    	<form:checkbox path="sampleCheckArray" value="zzz"/>zzz<br>
    
    	<input type="submit">
    </form:form>

    SampleCommand.java
    public class SampleCommand {
    	private boolean sampleCheck1;
    	private String sampleCheck2;
    	private String[] sampleCheckArray;
    	
    	・・・ setter, getter省略

  • <form:checkboxes>
    例1)
    <form:form commandName="sampleCommand">
    	<form:checkboxes path="sampleCheckArray" items="${checkList}"/><br>
    
    	<input type="submit">
    </form:form>

    checkList設定例
    @Controller
    public class SampleController {
    
    	@ModelAttribute("checkList")
    	List<String> getCheckList() {
    		List<String> list = new ArrayList<String>();
    		list.add("xxx");
    		list.add("yyy");
    		list.add("zzz");
    		return list;
    	}

    または
    	@ModelAttribute("checkList")
    	Map<String, String> getCheckList() {
    		Map<String, String> map = new HashMap<String, String>();
    		map.put("xxx", "label-xxx");
    		map.put("yyy", "label-yyy");
    		map.put("zzz", "label-zzz");
    		return map;
    	}

    例2)
    <form:form commandName="sampleCommand">
    	<form:checkboxes path="sampleCheckArray" items="${checkList}" itemValue="code" itemLabel="name"/>
    	<input type="submit">
    </form:form>

    checkList設定例
    @Controller
    public class SampleController {
    
    	static class Item {
    		String code;
    		String name;
    		public Item(String code, String name) {
    			this.code = code;
    			this.name = name;
    		}
    		public String getCode() {
    			return code;
    		}
    		public void setCode(String code) {
    			this.code = code;
    		}
    		public String getName() {
    			return name;
    		}
    		public void setName(String name) {
    			this.name = name;
    		}
    	}
    
    	@ModelAttribute("checkList")
    	List<Item> getCheckList() {
    		List<Item> list = new ArrayList<Item>();
    		list.add(new Item("xxx", "label-xxx"));
    		list.add(new Item("yyy", "label-yyy"));
    		list.add(new Item("zzz", "label-zzz"));
    		return list;
    	}

  • <form:radiobutton>
    例)
    <form:form commandName="sampleCommand">
    
    	<form:radiobutton path="sampleCheck2" value="AAA"/>AAA&nbsp;<br>
    	<form:radiobutton path="sampleCheck2" value="BBB"/>BBB&nbsp;<br>
    
    	<input type="submit">
    </form:form>

  • <form:radiobuttons>
    例)
    <form:form commandName="sampleCommand">
    	<form:radiobuttons path="sampleCheck2" items="${checkList}"/><br>
    
    	<input type="submit">
    </form:form>
  • <form:password>
    例)
    <form:form commandName="sampleCommand">
    	<form:password path="sampleCheck2"/>
    
    	<input type="submit">
    </form:form>

  • <form:select>
    例)
    <form:form commandName="sampleCommand">
    	<form:select path="sampleCheck2" items="${checkList}"/>
    	<input type="submit">
    </form:form>

    複数選択可のselectタグを出力するにはpathにListなどを指定する。
    例)
    	<form:select path="sampleCheckArray" items="${checkList}"/>

  • <form:option>, <form:options>
    <form:select path="sampleCheck2" >
    	<form:option value="-" label="--Please Select"/>
    	<form:options items="${checkList}"/>
    </form:select>
    ~
  • <form:textarea>
    <form:form commandName="sampleCommand">
    	<form:textarea path="note"  rows="3" cols="20"/>
    
    	<input type="submit">
    </form:form>
  • <form:hidden>
    例)
     <form:hidden path="note" />

  • <form:errors>
    例)
    messageに対するエラーメッセージを表示する。
    <form:form commandName="sampleCommand">
    	<form:input path="message"/><form:errors path="message" /><br>
    	<input type="submit">
    </form:form>

    例)
    すべてのエラーを表示する。
    <form:form commandName="sampleCommand">
    	<form:errors path="*" />
    	<p>
    	<form:input path="message"/><br>
    	<input type="submit">
    </form:form>

2. spring.tld

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
  • <spring:url>
    例) "/contextルート"からのulr文字列を生成する。
    <spring:url value="/showMessage" var="actionUrl"/>
    <form:form commandName="sampleCommand" action="${actionUrl}">
    actionUrlは"/mvc-basic/showMessage"など

    例) userIdの値でurlを生成し、searchUrlへ代入する。
    <spring:url value="search/{code}" var="searchUrl">&#160;
        <spring:param name="code" value="${userId}"/>&#160;
    </spring:url>&#160;
    <a href="${fn:escapeXml(searchUrl)}">ユーザ</a>




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-08-30 (木) 20:34:45 (2236d)