実行画面

tagScripting.png

TagIteration.jsp

<%@ page contentType="text/html;charset=Windows-31J" %>
<%@ taglib uri="/WEB-INF/tag.tld" prefix="myTag" %>

<html>

<head>
<title>Tag Iteration Example</title>
</head>

<body>

<% java.util.List list = new java.util.LinkedList(); 
   list.add("壱");
   list.add("弐");
   list.add("参");
   list.add("肆");
   list.add("伍");
%> 

BEFORE TAG

<hr/>

<myTag:itAttrExam colAttr="<%= list %>">
  BODY <%= item %> <br/>
</myTag:itAttrExam>

<hr/>

AFTER TAG

</body>

</html>

TagIteration.java

package com.snail.sjcwc;

import java.util.Collection;
import java.util.Iterator;

import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;

public class TagIterationExam extends TagSupport {

	private static final long serialVersionUID = 1267132930041172653L;

	private Iterator iterator;

	private Collection<String> colAttr;

	public void setColAttr(Collection<String> param) {
		// タグ属性の格納
		colAttr = param;
	}

	public int doStartTag() throws JspTagException {
		// 最初に一回だけ呼ばれる
		iterator = colAttr.iterator();
		if (iterator.hasNext()) {
			// スクリプティング変数 item に要素一つ分を格納
			pageContext.setAttribute("item", iterator.next());
			return EVAL_BODY_INCLUDE;
		} else {
			return SKIP_BODY;
		}
	}

	public int doAfterBody() {
		// 繰り替えし数 - 1 回分呼ばれる
		if (iterator.hasNext()) {
			// スクリプティング変数 item に要素一つ分を格納
			pageContext.setAttribute("item", iterator.next());
			return EVAL_BODY_AGAIN;
		} else {
			// 要素が残っていない場合
			return SKIP_BODY;
		}
	}
}

Java SJC-WC JSP#tagIteration


添付ファイル: filetagScripting.png 299件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   sitemap
Last-modified: 2006-11-20 (月) 01:12:23 (3667d)
ISBN10
ISBN13
9784061426061