zoukankan      html  css  js  c++  java
  • JSP入门 taglib

    自定义标签库(taglib),将原本需要写在jsp中的java代码封装起来,成为可复用的组件。

    taglib的写法和jsp动作(action)很相似,是由taglib前缀,冒号,标签名三者的组合体。其中taglib前缀是用jsp指令(direction)定义的。

    <%@ taglib uri="WEB-INF/tld/lingirl.tld" prefix="lingirl" %>

    1.第一步,让ForTag继承BodyTagSupport。

    BodyTagSupport专门用来制作带内容的taglib,它为我们提供了几个好用的方法来处理数据。

    2.第二步,为ForTag设置两个自定义参数:var和items。

    对应标签中的<lingirl:for var="contact" items="${list}">

    3.第三步,让ForTag处理标签内容。

        public int doStartTag() throws JspException {
            this.index = 0;
            if (this.process()) {
                return EVAL_BODY_INCLUDE;
            }
            else
            {
                return    EVAL_PAGE;
            }
        }
    
        public int doAfterBody() {
    
            if(this.process()) {
    
                return EVAL_BODY_AGAIN;
            }
            else
            {
                return EVAL_PAGE;
            }
        }

    为了实现循环,我们需要监听两个事件。

    doStartTag()方法在标签开始时执行,要记住每次都要对类进行初始化,避免上一次的遗留数据对操作造成影响。然后判断是否

    有数据需要处理,如果有,则返回EVAL_BODY_INCLUDE开始处理标签里的内容,如果没有,返回

     EVAL_PAGE跳过标签内容执行标签下面的内容。

    doAfterBody()方法在每次处理完标签内部内容后执行,判断循环是否已经结束,如果可以继续循环,返回

    EVAL_BODY_AGAIN用循环得到新的数据再次处理标签内部内容,如果循环结束就返回

    EVAL_PAGE结束标签。

    第四步,进行循环时的处理

    经过如此一番周折,ForTag可以从标签获得参数,并对数据进行循环处理了。

    最后一步还要为它编写tld(taglibdefinition)标签库定义文件,提供给jsp指令(direction)引用。

    sun就为标签库定义了一套标准,叫做jstl(java standard taglib)

    java标准标签库,可以去http://jakarta.apache.org/taglibs/index.html下载apache实现的jstl

  • 相关阅读:
    openOPC与监控页面二
    Node教程——Gulp前端构建工具-教程
    回到顶部插件
    《软件测试52讲》——测试基础知识篇
    计算贝塞尔曲线上点坐标
    少年,不要滥用箭头函数啊
    JS属性defer
    leetcode-572-另一个树的子树
    leetcode-9.-回文数
    leetcode-300-最长上升子序列
  • 原文地址:https://www.cnblogs.com/Dhouse/p/3393762.html
Copyright © 2011-2022 走看看