国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Taglib 原理和實現:第四章 循環的Tag

2019-11-18 11:25:55
字體:
來源:轉載
供稿:網友

第四篇 支持循環的Tag

1。問題:在request里的 People 對象,有個屬性叫 men ,men 是一個Collection ,有許多個man 。現在,把 collection里的man的名字都顯示出來

 顯然,這是一個嵌套Tag的問題。有三個Tag互相作用:最外層的Tag找到People對象,中間的Tag取得Collection,子Tag負責打印。
 例如:
 <diego:withObject value="${people}">
  <diego:withCollection    <diego:elementout property="name"/>  
  </diego:withCollection>
 </diego:withObject>
 
 思路如下:
 1.編寫WithObjectTag,負責從El表達式中取得對象
 2.編寫WithCollectionTag,負責從對象中取得 Collection ,遍歷 Collection ,每遍歷一次 Collection ,執行一次body
 3.編寫ElementoutTag ,把 Collection 中每個men對象的 name 打印出來
 
 
2. 完整程序如下:
 
在上例的diegoyun.vo包內,編寫 People 類

package diegoyun.vo;
import
java.util.Collection;
public class People
{
 private Collection men = null; 
 public Collection getMen()
 {
  return men;
 }
 public void setMen(Collection men)
 {
  this.men = men;
 }
}

編寫 withObject ,這是從request里取得People對象的最外層Tag

package diegoyun;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;
import org.apache.taglibs.standard.lang.support.EXPressionEvaluatorManager;
public class WithObjectTag extends BodyTagSupport
{
 private Object value = null;

 public Object getValue()
 {
  return value;
 }
 public void setValue(Object value)throws JspException
 {
  this.value = ExpressionEvaluatorManager.evaluate(
            "value", value.toString(), Object.class, this, pageContext);
 }
 public int doStartTag()
 {  
  return EVAL_BODY_INCLUDE;
 }
 public int doEndTag()throws JspException
 {  
  return EVAL_PAGE;
 }
}

 

編寫WithCollectionTag,該Tag負責取得Collection,并遍歷執行子Tag
package diegoyun;

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

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;

import org.apache.commons.beanutils.PropertyUtils;

public class WithCollectionTag extends BodyTagSupport {
 private Object element = null;

 private Collection list = null;

 private Iterator iterator = null;

 public Object getElement() {
  return element;
 }

 public void setProperty(String property) throws JspException {
 //取得父Tag對象,并且得到Collection


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芦溪县| 湟中县| 浮梁县| 张家港市| 芜湖市| 大城县| 宜兴市| 广平县| 房山区| 馆陶县| 承德县| 额尔古纳市| 育儿| 泰来县| 马鞍山市| 洛川县| 乌兰县| 宁明县| 富宁县| 汉中市| 木里| 遂平县| 桃源县| 葫芦岛市| 陵川县| 闽清县| 南陵县| 密山市| 固阳县| 合肥市| 科技| 郁南县| 双流县| 微山县| 榆树市| 平定县| 资源县| 治县。| 会同县| 鹤庆县| 永顺县|