zoukankan      html  css  js  c++  java
  • 深入理解BodyTagSupport,包括SKIP_PAGE, EVAL_PAGE等

    深入理解BodyTagSupport,包括SKIP_PAGE, EVAL_PAGE

     

    BodyTagSupport类的方法:
    编写标签对应的实现类时,需要重载BodyTagSupport类几个方法:doStartTag(), setBodyContent(), doInitBody(), doAfterBody(), doEndTag();


    他们执行顺序如下:
    doStartTag()→doInitBody()→setBodyContent()→doAfterBody()→doEndTag()


    doStartTag()方法可返回EVAL_BODY_INCLUDE或SKIP_BODY,
    如果返回EVAL_BODY_INCLUDE则继续执行;
    如果返回SKIP_BODY则接下来的doInitBody(),setBodyContent(), doAfterBody()三个方法不会被执行,
    而直接执行doEndTag()方法。

    setBodyContent()方法用于设置标签体内容,如果在此之前要作一些初始化工作,则在doInitBody()方法中完成。
    标签体内容执行完后,会调用doAfterBody()方法,此方法可返回EVAL_BODY_TAGSKIP_BODY
    EVAL_PAGESKIP_PAGE
    如果返回EVAL_BODY_TAG则会再次设置标签体内容,直到返回SKIP_BODY;
    如果返回EVAL_PAGE则标签体执行完后会继续执行JSP页面中接下来的部分;
    如果返回SKIP_PAGE,则JSP页面的后续内容将不再执行。

    标签中静态常量:

    EVAL_BODY_INCLUDE:告诉服务器正文的内容,并把这些内容送入输出流
    SKIP_BODY:告诉服务器不要处理正文内容
    EVAL_PAGE:让服务器继续执行页面
    SKIP_PAGE:让服务器不要处理剩余的页面
    EVAL_BODY_AGAIN:让服务器继续处理正文内容,只有doAfterBody方法可以返回
    EVAL_BODY_BUFFERED:BodyTag接口的字段,在doStartTag()返回
    EVAL_BODY_INCLUDE、SKIP_BODY一般由doStartTag()返回,而EVAL_PAPGE、SKIP_PAGE由doEndTag()返回。

  • 相关阅读:
     一、cocos2dx之如何优化内存使用(高级篇)
    latex模版&&c++ STL用法&&画图网站
    HDU 3480 Division
    HDU 3045 Picnic Cows
    HDU 2993 MAX Average Problem
    HDU 3507 Print Article
    Luogu P2900 [USACO08MAR]土地征用Land Acquisition
    浅谈斜率优化
    POJ 2559 Largest Rectangle in a Histogram
    【计算几何】求半平面交的面积
  • 原文地址:https://www.cnblogs.com/frankchia/p/7911020.html
Copyright © 2011-2022 走看看