JSP中的TagLib应用(4-1)

2016-01-29 12:39 1 1 收藏

JSP中的TagLib应用(4-1),JSP中的TagLib应用(4-1)

【 tulaoshi.com - Java 】

下面到了关键部分乐。 对tag进行处理。其实很多情况下我们是使用已经提供的taglib.

别人/公司已经做好了tag和处理部分,打好了包 我们需要做的只是在我们的jsp中去应用.

但是当我们自己做个taglib时, 就需要编写这部分tag handler了.

这里只针对上面文件里提到的insert tag,其他的为了避免重复,就不一一说明了

==================== InsertTag.java==============================

/*

* $Id: InsertTag.java,v 1.13 2000/03/04 02:54:57 brydon Exp $

* Copyright 1999 Sun Microsystems, Inc. All rights reserved.

* Copyright 1999 Sun Microsystems, Inc. Tous droits réservés.

*/

package com.sun.estore.taglib;

import javax.servlet.jsp.JspTagException;

import javax.servlet.jsp.tagext.TagSupport;

import com.sun.estore.util.Debug;

/**

* This class is an easy interface to the JSP template or other

* text that needs to be inserted.

* @author Greg Murray

*/

public class InsertTag extends TagSupport {

private boolean directInclude = false;

private String parameter = null;

private String templateName = null;

private Template template = null;

private TemplateParameter templateParam = null;

/**

* default constructor

*/

public InsertTag() {

super();

}

public void setTemplate(String templateName){

this.templateName = templateName;

}

public void setParameter(String parameter){

this.parameter = parameter;

}

public int doStartTag() {

try{

if (templateName != null){

template = (Template)pageContext.getRequest().getAttribute("template");

}

} catch (NullPointerException e){

Debug.println("Error extracting template from session: " + e);

}

if (parameter != null && template != null) templateParam = (TemplateParameter)template.getParam(parameter);

if (templateParam != null) directInclude = templateParam.isDirect();

return SKIP_BODY;

}

public int doEndTag() throws JspTagException {

try{

pageContext.getOut().flush();

} catch (Exception e){

// do nothing

}

try {

if (directInclude && templateParam != null) {

pageContext.getOut().println(templateParam.getValue());

} else if (templateParam != null) {

if (templateParam.getValue() != null) pageContext.getRequest().getRequestDispatcher(templateParam.getValue()).include(pageContext.getRequest(), pageContext.getResponse());

}

} catch (Throwable ex) {

ex.printStackTrace();

}

return EVAL_PAGE;

}

}

可以看到。InsertTag.java继承了javax.servlet.jsp.tagext.TagSupport类. 因为在TagSupport中定义了一些接口.

来源:https://www.tulaoshi.com/n/20160129/1486990.html

延伸阅读
标签: Java JAVA基础
自定义tag位置 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Taglib 指令 定义一个标签库以及其自定义标签的前缀. JSP 语法 例子 . . 描述 指令声明此JSP文件使用了自定义的标签,同时引用标签库, 也指定了他们的标签的前缀。 这里自定义的标签含有标签和元素之分。因为JSP文件能够转化为XML, 所以了解标...
标签: Web开发
XMLTextWriter类 用在本节中的方法创建XML文档显然并不困难。多年以来,开发者都是通过在缓存在连接一些字符串,连接好以后再把缓存中字符串输出到文件的方式来创建XML文档。但是以这种方式创建XML文档的方法只有在你保证字符串中不存在任何细小的错误的时候才有效。.NET Framework通过用XMLwriter提供了更好的创建XML文档的方法。 ...
标签: Java JAVA基础
JSP页面上使用你可以使用Taglib Directive来自定义标签定义一个标签库和前缀。 其语法: <%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" % > 示例: <%@ taglib uri="http://www.jspcentral.com/tags" prefix="public" %> <public:loop> . </public:loop> 描述: <%@ taglib %>...
标签: Java JAVA基础
熟悉JSP服务器 本“JSP由浅入深” 系列教程是面向中级和高级用户的,它需要HTML和Java的基础。你应该会将HTML网页连接到一起,并且会利用Java来进行编程。如果你还没有这个基础,建议你还是先打好基础为好。这个系列教程将通过编制简单的例子到复杂的例子来教会你JSP。本系列教程是采用循序渐进的方法来进行阐述的,即由浅入深。为了使你能够获...
标签: Java JAVA基础
HTML 注释 在客户端显示一个注释. JSP 语法 <!-- comment [ <%= expression % ] -- 例子 1 <!-- This file displays the user login screen -- 在客户端的HTML源代码中产生和上面一样的数据: <!-- This file displays the user login screen -- 例子 2 <!-- This page was loaded on <%= (new java.util.Date()...

经验教程

946

收藏

50
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部