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. UML类图新手入门级介绍

    UML类图新手入门级介绍 举一个简单的例子,来看这样一副图,其中就包括了UML类图中的基本图示法. 首先,看动物矩形框,它代表一个类(Class).类图分三层,第一层显示类的名称,如果是抽象类,则就用 ...

  2. SharedSDK微信分享不成功,分享之后没有反应

    对于一般来说,使用SharedSDK的时候,分享不成功不外乎下面几个原因: 1.测试没有打包2.打包的keystore跟微信开放平台上面的不一致, 导致MD5码不一致3.分享参数错误4.应用没有审核通 ...

  3. Uncaught SyntaxError: Unexpected token ILLEGAL【js错误】

    应该是逗号的中英文状态错了,应该是英文状态的逗号.还有百度应用后面的逗号.college后面的冒号

  4. C++二维数组动态内存分配

    对于二维数组和二维指针的内存的分配 这里首选说一下一维指针和一维数组的内存分配情况. 一维: 数组:形如int  a[5];这里定义了一个一维数组a,并且数组的元素个数是5,这里的a是这五个元素的整体 ...

  5. CSS简写及如何优化技巧

    CSS简写就是指将多行的CSS属性简写成一行,又称为CSS代码优化或CSS缩写.CSS简写的最大好处就是能够显著减少CSS文件的大小,优化网站整体性能,更加容易阅读. 下面介绍常见的CSS简写规则: ...

  6. 转:关于JAVA多线程同步

    转:http://lanvis.blog.163.com/blog/static/26982162009798422547/ 因为需要,最近关注了一下JAVA多线程同步问题.JAVA多线程同步主要依赖 ...

  7. Linux下iftop网卡流量监控使用

    在类linux系统中可以使用top查看系统资源.进程.内存占用等信息.查看网络状态可以使用netstat.nmap等工具.若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop. 一.i ...

  8. 批处理bat命令--获取当前盘符和当前目录和上级目录

    批处理bat命令--获取当前盘符和当前目录和上级目录 批处理命令获取当前盘符和当前目录%~d0 是当前盘符%cd% 是当前目录可以用echo %cd%进行打印测试 以下例子是命令行编译Visual S ...

  9. win8系统下保存出现闪退的解决方案

    不知道有没有人和我一样用的是win8系统,同时还遇到保存QQ截图保存闪退.保存sublime文件闪推.系统自带截图保存闪退.....更可恶的是我用chrome中百度搜索“win8保存东西闪退”结果浏览 ...

  10. [大牛翻译系列]Hadoop(14)MapReduce 性能调优:减小数据倾斜的性能损失

    6.4.4 减小数据倾斜的性能损失 数据倾斜是数据中的常见情况.数据中不可避免地会出现离群值(outlier),并导致数据倾斜.这些离群值会显著地拖慢MapReduce的执行.常见的数据倾斜有以下几类 ...