• 标签处理器类(自定义标签)ForEach


    该处理器的 父类  javax.servlet.jsp.tagext.SimpleTagSupport

    public class ForEach extends SimpleTagSupport {
    private Collection<?> items;
    public void setItems(Collection<?> items) {
    this.items = items;
    }
    private String var;
    public void setVar(String var) {
    this.var = var;
    }
    @Override
    public void doTag() throws JspException, IOException {
    //遍历items集合
    if(items!=null){
    for(Object obj:items){
    //*把正在遍历的对象放入PageContext中 键,var 值,正在遍历的对象
    getJspContext().setAttribute(var, obj);
    //直接输出到页面上
    getJspBody().invoke(null);
    }
    }
    }
    
    }

    jsp页面里面模拟数据

    <%
    List<TestTag> tg = new ArrayList<TestTag>();
    tg.add(new TestTag(1, "AAA"));
    tg.add(new TestTag(2, "BBB"));
    tg.add(new TestTag(3, "CCC"));
    tg.add(new TestTag(4, "DDD"));
    request.setAttribute("tg", tg);
    %>
    
    <!-- 使用标签库foreach -->
    <c:forEach items="${requestScope.tg }" var="abc">
    ${abc.id}--${abc.name}<br>
    </c:forEach>
    
    <!-- 使用自定义标签foreach -->
    <wlc:ForEachTag items="${requestScope.tg }" var="abc">
    ${abc.id}--${abc.name}<br>
    </wlc:ForEachTag>

    tld文件声明

    <tag>
    <name>ForEachTag</name>
    <tag-class>cn.stud.wlc.tag.ForEach</tag-class>
    <body-content>scriptless</body-content>
    <attribute>
    <name>items</name>
    <required>true</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
    <name>var</name>
    <required>true</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    </tag>
  • 相关阅读:
    Qt Quick实现的涂鸦程序
    Java并发学习之十九——线程同步工具之Phaser
    poj 1845(等比数列前n项和及高速幂)
    装饰模式(旧恋)
    cocos2d-x 3.1.1 学习笔记[3]Action 动作
    Nmap 源代码学习四 软件简单使用
    关于phpcmsv9更新缓存出现链接被重置的问题
    POJ 3159 Candies(SPFA+栈)差分约束
    Ubuntu 配置ISCSI服务
    iSCSI存储技术
  • 原文地址:https://www.cnblogs.com/wlc297984368/p/5431638.html
Copyright © 2020-2023  润新知