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
<form:checkbox path="sampleCheckArray" value="yyy"/>yyy
<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 <br>
<form:radiobutton path="sampleCheck2" value="BBB"/>BBB <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"> 
<spring:param name="code" value="${userId}"/> 
</spring:url> 
<a href="${fn:escapeXml(searchUrl)}">ユーザ</a>