`
pengchua
  • 浏览: 153736 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Review_JSP(其中包括自定义标签)

阅读更多

1.JSTL表达式语言负责处理表达式和文字。表达式由${ }字符所包围。

2.include指令和jsp:include动作  :include指令是在JSP文件被转换成Servlet的时候引入文件,而这里的jsp:include动作不同,插入文件的

时间是在页面被请求的时候。jsp:include动作的文件引入时间决定了它的效率要稍微差一点,而且被引用文件不能包含某些JSP代码(例如不

能设置HTTP头),但它的灵活性却要好得多。

3.RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的区别是:前者仅是容器中控制权的转向,在客户端浏览器

地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可

以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用Request Dispatcher.forward()方法,并且,这样也有助

于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用 HttpServletResponse.sendRequest()方法。

4.自定义标签:

iterateTag.java
public class iterateTag extends BodyTagSupport{
    private String name;//在pageContext中标识的一个属性名
    private Iterator it;//要迭代的对象
    private String type;//it中对象的类型
    Collection collection;
    public void setCollection(Collection collection){
        if(collection.size()>0)
            it=collection.iterator();
    }
    //----标签开始时调用此方法-------
    public int doStartTag(){
        if(it==null) return SKIP_BODY;
        else return continueNext(it);
    }
    //----标签体执行完后调用此方法----
    public int doAfterBody(){
        return continueNext(it);
    }
    //----标签结束时调用此方法-------
    public int doEndTag(){
        try{
            if(bodyContent!=null)
                bodyContent.writeOut(bodyContent.getEnclosingWriter());
        }catch(Exception e){
            System.out.println(e);
        }
        return EVAL_PAGE;
    } 
    //----迭代----
    protected int continueNext(Iterator it){
        if(it.hasNext()){
            pageContext.setAttribute(name,it.next(),PageContext.PAGE_SCOPE);
            return EVAL_BODY_AGAIN;
        }else return SKIP_BODY;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
 /**
  * @return Returns the collection.
  */
 public Collection getCollection() {
  return collection;
 }
}

IterateTEI.java   //TagExtraInfo用于提供编译时标签的额外信息,为脚本变量定义的标签额外信息类必须在TLD中声明,这样元素tei-

class将会如下:<tei-class>XXXX.XXXXTei</tei-class>

public class IterateTEI extends TagExtraInfo {
    public IterateTEI() {
        super();
    }
    public VariableInfo[] getVariableInfo(TagData data){
        return new VariableInfo[]{
                new VariableInfo(data.getAttributeString("name"),
                        data.getAttributeString("type"),
                        true,VariableInfo.NESTED)             
        };
    }
}

XXX.tld 中的部分配置:
<!-- iterateTag-->
    <tag>
   
      <name>iterateTag</name>

      <tag-class>com.format.iterateTag</tag-class>
      <tei-class>com.format.IterateTEI</tei-class>

      <body-content>JSP</body-content>
      <attribute>
       <name>collection</name>
       <required>true</required>
       <rtexprvalue>true</rtexprvalue>
      </attribute>
      <attribute>
       <name>name</name>
       <required>true</required>
      </attribute>
      <attribute>
       <name>type</name>
       <required>true</required>
      </attribute>
    </tag>
jsp调用:
<%//----------设置一个ArrayList对象的初始值----------
   ArrayList testCol=new ArrayList();
   testCol.add("abc");
   testCol.add("bcd");
   testCol.add("add");
   request.setAttribute("testCol",testCol);

  %>
  <csai:iterateTag name="testColOne" collection="<%=testCol%>" type="String">
   输出一个值:out.println("testColOne")<br>
  </csai:iterateTag> 



分享到:
评论

相关推荐

    yelp_review_full_csv

    yelp_review_full_csv数据集,是Yelp为了学习目的而发布的一个开源数据集。它包含了由数百万用户评论,商业属性这是一个非常常用的全球NLP挑战数据集。训练集总共650,000,测试集50,000,一共5个分类,每一种各有130...

    芯片Design_Review_Checklist

    5. 模拟与混合信号电路验证:对于包含模拟或混合信号部分的芯片,确保其功能和性能满足要求。 6. 制造工艺兼容性:确认设计与制造工艺的兼容性,避免生产过程中的问题。 7. 反馈修正:根据前几轮流片的反馈,对设计...

    基于Code_Collaborator和Review_board的代码审工具试用对比说明.pdf

    ### 基于Code_Collaborator和Review_Board的代码审查工具试用对比...而Review_Board则以其低成本和开源特性受到青睐,适合预算有限或需要自定义扩展功能的团队。最终选择哪款工具应根据团队的具体需求和预算来决定。

    Autodesk_FBX_Review_1.2.3.0_Win64

    1. Quick_Help_FBX_Review_1.2_Win_64bit.chm:这是一个帮助文件,包含了FBX Review 1.2版本的Windows 64位版的详细使用指南。CHM(Compiled HTML Help)是Microsoft提供的一个标准帮助文件格式,用户可以通过它快速...

    review_polarity

    标题“review_polarity”指的是一个专门用于情感分析的机器学习语料库,它包含了大量文本数据,这些数据被标记为正面或负面,以帮助训练模型识别文本的情感倾向。语料库是机器学习中的一个重要组成部分,它是模型...

    PyPI 官网下载 | open_review_abstract_bot-0.2.1.tar.gz

    5. `src`或`open_review_abstract_bot`目录:通常包含项目的源代码,其中可能有`__init__.py`文件,表明这是一个Python包。 6. 测试文件(如`tests`目录):用于验证代码功能的单元测试或集成测试。 7. 可能还有示例...

    PyPI 官网下载 | amazon_product_review_scraper-0.6.tar.gz

    《PyPI官网下载:探索亚马逊产品评论爬虫库——amazon_product_review_scraper-0.6》 在Python的生态系统中,PyPI(Python Package Index)是最重要的资源库,它为开发者提供了海量的开源软件包和模块,使得开发变...

    Harvard_Business_Review_-_05_2021.pdf

    Harvard_Business_Review_-_05_2021

    Autodesk_FBX_Review_Win_64bit_1.4.1

    在解压后的文件列表中,“Autodesk_FBX_Review_Win_64bit”可能包含了安装程序或者可执行文件,用户只需运行这个程序就可以安装或启动FBX Review工具。安装过程中,通常会检查系统环境,确认是否满足运行需求,然后...

    FBX_Review_Win_64bit_1.4.1 2016.11.30最新

    标签"FBX Review Autodesk 1.4.1"进一步强调了软件的核心功能——FBX格式的支持,以及其与Autodesk公司的关联。 在压缩包子文件的文件名称列表中,"Autodesk_FBX_Review_Win_64bit"很可能是安装程序的主文件,用户...

    A_Brief_Didactic_Theoretical_Review_on_Convolutional_Neural_Networks.pdf

    A_Brief_Didactic_Theoretical_Review_on_Convolutional_Neural_Networks, Deep Belief Networks and Stacked Auto-Encoders MSc.Rômulo Fernandes da Costa

    PHP-Code-review.rar_PHP codereview_php code review_php代码review

    代码审核,是对应用程序源代码进行系统性检查的工作。它的目的是为了找到并且修复应 用程序在开发阶段存在的一些漏洞或者程序逻辑错误,避免程序漏洞被非法利用给企业带来不必 要的风险。

    PSS_20_Public_Review_Draft_20201118_PSS_SIMULATION_

    标题"PSS_20_Public_Review_Draft_20201118_PSS_SIMULATION_"中的"PSS"通常代表“电力系统稳定器”(Power System Stabilizer),这在电力工程领域是一个重要的概念。电力系统稳定器是一种辅助控制设备,用于改善...

    37 Review_Day_6.exe

    37 Review_Day_6

    41 Review_for_closing.exe

    41 Review_for_closing

    25 Review_week_2.exe

    25 Review_week_2

    31 Review_Day_5.exe

    31 Review_Day_5

    Solutions_Review_Business_Intelligence_Buyers_Guide_VI27.zip

    Solutions_Review_Business_Intelligence_Buyers_Guide_VI27

    Solutions_Review_Business_Intelligence_Buyers_Guide_VI27.pdf

    Solutions_Review_Business_Intelligence_Buyers_Guide_VI27.pdf

    review_NEW_electricvehicle_

    【标题】"review_NEW_electricvehicle_" 暗示了我们即将探讨的是关于新能源电动车(Electric Vehicles, EVs)的最新趋势与评测。这可能是对电动汽车行业的深度分析,包括技术发展、市场动态、政策影响以及消费者评价...

Global site tag (gtag.js) - Google Analytics