jsp自定义标签的优势体现在于jsp页面上面减少了java代码.

jsp自定义标签有三大部分组成,首先是类继承TagSupport,实现doStartTag方法.

public int doStartTag() throws JspException {
log.info("partsMgrService:" + partsMgrService);
log.info("Log style: " + style);
log.info("Log rowid: " + rowid); StringBuffer html = new StringBuffer();
List li = partsMgrService.listTreePartsType(); for (int i = 0; i < li.size(); i++) {
PartsTypeDTO dto = (PartsTypeDTO) li.get(i);
if (style.equals("header") || style == "header") {
styleHeaderJsp(html, dto);
} else if (style.equals("mall") || style == "mall") {
styleMallJsp(i, html, dto);
}
} log.info("html:" + html.toString());
JspWriter out = pageContext.getOut();
try {
out.print(html.toString());
} catch (IOException e) {
e.printStackTrace();
}
return Tag.SKIP_BODY;
}

如果存在属性,需要提供get,set方法。另外一个是tag中的Service对象不能依赖注入。需要使用getBean()方法获取。

第二步,创建tld文件。

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"> <tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<tag>
<name>show</name>
<tag-class>com.bn.car.core.tag.PartsTypeTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>style</name> <!-- 属性名字 -->
<required>false</required> <!-- 是否必须 -->
<rtexprvalue>true</rtexprvalue> <!-- 表示是否可以使用JSP表达式 -->
</attribute>
<attribute>
<name>rowid</name> <!-- 属性名字 -->
<required>false</required> <!-- 是否必须 -->
<rtexprvalue>true</rtexprvalue> <!-- 表示是否可以使用JSP表达式 -->
</attribute>
</tag>
</taglib>

第三步,在jsp页面上引用。

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

<dd:show style="mall" rowid="<%=_ul %>"/> 

允许动态传参。需要在tld文件中配置rtexprvalue项。

需要的jar: jstl.jar,servlet.jar,standard.jar lib包。更多详细代码请看以下链接:

http://developer.51cto.com/art/200907/134263.htm

(文章写的挺好,但是在tld配置文件中出现了requried,rtexprvale 写法错误! 有误导,正确的写法应该是 required, rtexprvalue)

jsp自定义标签分析的更多相关文章

  1. 报错分析---->jsp自定义标签:类cannot be resolved to a type

    这个困扰我一个晚上,仔细上网查阅发现,主要是因为jsp自定义标签要用到的这个jsp-api.jar的问题 这是我eclipes中的jar: 然而jsp-api.jar这个jar在tomcat中也有(报 ...

  2. 1.4(学习笔记)JSP自定义标签

    一.JSP自定义标签 JSP自定义标签,可以通过实现Tag接口.继承TagSupport类来设置标签功能. 后续通过配置文件将标签和具体的实现类关联. 二.自定义第一个标签(实现Tag接口) 自定义标 ...

  3. JSP自定义标签的使用简化版

    在jsp中 如果不想页面中出现java代码 这个时候就需要使用到jsp的自定义标签库技术了 自定义标签库 能够有效的减少jsp中java代码的出现 使其更加自然的像html页面一样 如果要使用jsp自 ...

  4. JSP 自定义标签

    0 标签技术的API继承体系 1 作用 jsp自定义标签用于移除页面中的java代码 2 实现 2.1 标签处理类ViewIPTag.java package com.zsm.util; import ...

  5. JSP自定义标签开发入门

    一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...

  6. 一个简单的jsp自定义标签

    学到了一个简单的jsp自定义标签,后面有更多的例子,会更新出来: 例子1: 步骤: 1.编写标签实现类: 继承javax.servlet.jsp.tagext.SimpleTagSupport; 重写 ...

  7. JSP自定义标签库

    总所周知,JSP自定义标签库,主要是为了去掉JSP页面中的JAVA语句 此处以格式化输出时间戳为指定日期格式为例,简单介绍下JSP自定义标签的过程. 编写标签处理类(可继承自javax.servlet ...

  8. JSP自定义标签配置

    JSP自定义标签配置 JSP自定义标签 <taglib>         <taglib-uri>/WEB-INF/you.tld</taglib-uri>     ...

  9. jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题

    jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题 之前在项目中根据需求,需要自定义标签,经过查询w3c文档,自己也踩了一些坑,特此记录自定义标签的步骤,下面就以我之前的一个例子中的定义一 ...

随机推荐

  1. 2014028-jQuery与正则表达式[转]

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. call与apply函数

    call与apply函数 1.为什么需要call与apply函数 Javascript中,每一个函数内部都有一个特殊的关键词this,其随着所处环境的不同其指向也是不同的. 函数的内部其this也是指 ...

  3. DataGrid2

    1.DataGrid的button属性设置 CommandName="ToEdit": 对其中的button按钮进行选择: CommandArgument='<%#Eval( ...

  4. SQL2008、SQL2013 执行Transact-SQL 语句或者批处理时发生了异常。错误5120

    附加数据库的时候遇到问题,问题描述如下: 附加数据库 对于 服务器"服务器名"失败.(Microsoft.SqlServer.Smo) 执行Transact-SQL 语句或者批处理 ...

  5. rest介绍

    REST介绍 描述 rest即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软 ...

  6. Android String format 通过value 下的string.xml 文件

    <string name="format_coordinate" formatted="false">%s %d° %d\' %d\" % ...

  7. IntelliJ IDEA+Tomcat+Nginx运行git项目

    1.克隆Git项目到本地 (1)设置Git工具路径:file>settings>Version Control>Git (2)设置GitHub账户:file>settings& ...

  8. WPF 绑定四(层级绑定)

    xaml: <Window x:Class="WpfApplication1.Window4" xmlns="http://schemas.microsoft.co ...

  9. C string 函数大全

    PS:本文包含了大部分strings函数的说明,并附带举例说明.本来想自己整理一下的,发现已经有前辈整理过了,就转了过来.修改了原文一些源码的问题,主要是用char *字义字符串的问题,导致程序运行时 ...

  10. Java从入门到精通——数据库篇Oracle 11g服务详解

    装上Oracle之后大家都会感觉到我们的电脑慢了下来,如何提高计算机的速度呢?我们应该打开必要的服务,关闭没有用的服务.下面是Oracle服务的详解: Oracle ORCL VSS Writer S ...