jsp自定义标签分析
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自定义标签分析的更多相关文章
- 报错分析---->jsp自定义标签:类cannot be resolved to a type
这个困扰我一个晚上,仔细上网查阅发现,主要是因为jsp自定义标签要用到的这个jsp-api.jar的问题 这是我eclipes中的jar: 然而jsp-api.jar这个jar在tomcat中也有(报 ...
- 1.4(学习笔记)JSP自定义标签
一.JSP自定义标签 JSP自定义标签,可以通过实现Tag接口.继承TagSupport类来设置标签功能. 后续通过配置文件将标签和具体的实现类关联. 二.自定义第一个标签(实现Tag接口) 自定义标 ...
- JSP自定义标签的使用简化版
在jsp中 如果不想页面中出现java代码 这个时候就需要使用到jsp的自定义标签库技术了 自定义标签库 能够有效的减少jsp中java代码的出现 使其更加自然的像html页面一样 如果要使用jsp自 ...
- JSP 自定义标签
0 标签技术的API继承体系 1 作用 jsp自定义标签用于移除页面中的java代码 2 实现 2.1 标签处理类ViewIPTag.java package com.zsm.util; import ...
- JSP自定义标签开发入门
一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...
- 一个简单的jsp自定义标签
学到了一个简单的jsp自定义标签,后面有更多的例子,会更新出来: 例子1: 步骤: 1.编写标签实现类: 继承javax.servlet.jsp.tagext.SimpleTagSupport; 重写 ...
- JSP自定义标签库
总所周知,JSP自定义标签库,主要是为了去掉JSP页面中的JAVA语句 此处以格式化输出时间戳为指定日期格式为例,简单介绍下JSP自定义标签的过程. 编写标签处理类(可继承自javax.servlet ...
- JSP自定义标签配置
JSP自定义标签配置 JSP自定义标签 <taglib> <taglib-uri>/WEB-INF/you.tld</taglib-uri> ...
- jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题
jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题 之前在项目中根据需求,需要自定义标签,经过查询w3c文档,自己也踩了一些坑,特此记录自定义标签的步骤,下面就以我之前的一个例子中的定义一 ...
随机推荐
- AD查询1000条限制和解决方案
公司的一个项目要从AD上取数据,为了测试性能,批量在AD上创建了2000多个用户.但是用java程序获取所有用户的时候会报错或者只能取到1000条数据. 条数据. 用org.springfra ...
- 1 . Robberies (hdu 2955)
The aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually g ...
- CC2530之Flash映射
标准51系列内核的逻辑空间为哈佛结构,也就是说,程序空间和地址空间是分开的.具体分为: CODE区:存放程序代码和一些常量信息,有16根地址总线,寻址范围为0x0000~0xFFFF,共计64K DA ...
- C++ 实现不能被继承的类
方法一: #include <iostream> using namespace std; class A { public: static A* getInstance(); stati ...
- linux 安装sysstat使用iostat、mpstat、sar、sa(转载)
使用yum安装 #yum install sysstat sysstat的安装包是:sysstat-5.0.5-1.i386.rpm,装完了sysstat-5.0.5-1.i386.rpm后 就会有i ...
- log tag
Media Player MediaPlayerService NuPlayerDecoder NuPlayer MediaFocusControl Ac ...
- 转:java中volatile关键字的含义
转:java中volatile关键字的含义 在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言 ...
- 老式浏览器兼容HTML5和CSS3的问题
1.让老式浏览器支持HTML5 HTML5能为我们做的事儿很多,最为可口的就是语义化标签的应用,如果你已经在Chrome或者其他支持HTML5的浏览器上用过它的牛x,那这篇文章对你一定有用,因 ...
- 重绘panel控件,实现panel的阴影效果
最近想在项目中添加一个要有阴影的panel控件,找了好多资料,最后通过采用图片的方式实现了panel的阴影效果,效果图如下: 重绘代码如下: using System; using System.Co ...
- selenium-webdriver用例批量运行和测试套件使用 ------之我见
用例批量运行和测试套件使用 ------之我见 学习selenium-webdriver已经一段时间了,最近学习到,测试用例的批量执行,和测试套件的使用,有点自己的理解,不晓得对不对,希望大家指正! ...