日々の記録。

プログラミングのメモや感じた事などを記録。

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" />