jsp カスタムタグへオブジェクトを渡す方法
仕事でjspをいじる機会があったので、カスタムタグを利用したリファクタリングにチャレンジ。カスタムタグへのオブジェクトの渡し方がわからなかったので調査した。
タグファイルでカスタムタグを作成している場合の手法.
ポイントはattributeにrtexprvalueとtypeを明示する
タグファイル (my_select.tag)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ tag pageEncoding="UTF-8"%> <%@ attribute name="name" %> <%@ attribute name="var" rtexprvalue="true" type="java.util.List" %> <select id="${name}" name="${name}"> <c:forEach var="temp" items="${var}" varStatus="st" > <option selected="selected" value='<c:out value="${temp.value}"/>'> <c:out value="${temp.name}" /> </option> </c:forEach> </select>
sample.jsp
myListがjava.util.Listのインスタンスとすると。
<mytag:my_select var="${myList}" name="myList" />