- 浏览: 151101 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
fddjxllren:
session.find()是不支持动态绑定参数的.要使用it ...
Hibernate查询之list/iterator -
xiaofeiyang:
http://svn.apache.org/repos/asf ...
struts,hibernate,spring 版本控制svn的URL地址 -
peterxiemin:
emp在建立的时候,报无效的月份,为什么 ?
oracle的练习表---employee -
java_bigniu:
...
Hibernate查询之list/iterator -
lanhai921:
学习下,谢谢分享。
itext基本用法
开发一个迭代标签,此标签只可以对list进行迭代(学习)。
IterateTag.java:
package com.keith.tag; import java.util.Iterator; import java.util.List; import javax.servlet.jsp.JspException; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.TagSupport; public class IterateTag extends TagSupport { // 属性名称 private String name; // 属性保存范围 private String scope; // 每次迭代的对象 private String id; // 所以接受到的数据 private Iterator<?> iter; @Override public int doStartTag() throws JspException { Object value = null; // 是否是page范围 if ("page".equals(this.scope)) { value = super.pageContext .getAttribute(name, PageContext.PAGE_SCOPE); } else if ("request".equals(this.scope)) { // 是否是request范围 value = super.pageContext.getAttribute(name, PageContext.REQUEST_SCOPE); } else if ("session".equals(this.scope)) { // 是否是session范围 value = super.pageContext.getAttribute(name, PageContext.SESSION_SCOPE); } else { // 是否是application范围 value = super.pageContext.getAttribute(name, PageContext.APPLICATION_SCOPE); } //如果是List接口的实例 if (value != null && value instanceof List<?>) { //像List接口进行向下转型 this.iter = ((List<?>) value).iterator(); if (iter.hasNext()) { super.pageContext.setAttribute(id, iter.next()); //执行标签体内容 return TagSupport.EVAL_BODY_INCLUDE; }else{ //退出标签执行 return TagSupport.SKIP_BODY; } } else { //不是List接口实例,不处理 //退出标签执行 return TagSupport.SKIP_BODY; } } @Override public int doAfterBody() throws JspException { //判断是否还有内容 if (iter.hasNext()) { super.pageContext.setAttribute(id, iter.next()); //重复执行标签体 return TagSupport.EVAL_BODY_AGAIN; }else{ //退出标签执行 return TagSupport.SKIP_BODY; } } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getScope() { return scope; } public void setScope(String scope) { this.scope = scope; } public String getId() { return id; } public void setId(String id) { this.id = id; } public Iterator<?> getIter() { return iter; } public void setIter(Iterator<?> iter) { this.iter = iter; } }
iteratetag.tld:
<?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" version="2.1"> <!-- 标签库的版本 --> <tlib-version>1.0</tlib-version> <!-- 为标签苦在TLD中的描述名称 --> <short-name>iteratetag</short-name> <tag> <!-- 表示标签在JSP中的使用名称 --> <name>iterate</name> <!-- 表示这个标签所这项的Class --> <tag-class>com.keith.tag.IterateTag</tag-class> <!-- 标签体内容为空 --> <body-content>JSP</body-content> <attribute> <!-- format为属性名 --> <name>id</name> <!-- 表示此值必须设置 --> <required>true</required> <!-- 表示属性值是请求时表达式的结果 --> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <!-- format为属性名 --> <name>name</name> <!-- 表示此值必须设置 --> <required>true</required> <!-- 表示属性值是请求时表达式的结果 --> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <!-- format为属性名 --> <name>scope</name> <!-- 表示此值必须设置 --> <required>true</required> <!-- 表示属性值是请求时表达式的结果 --> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>
web.xml:
<taglib> <taglib-uri>iterate</taglib-uri> <taglib-location>/WEB-INF/iteratetag.tld</taglib-location> </taglib>
index.jsp:
<%@ page import="java.util.*" %> <%@ taglib prefix="iteratetag" uri="iterate"%> <body> <% List<String> all = new ArrayList<String>(); all.add("java"); all.add("linux"); all.add("C"); request.setAttribute("all",all); %> <iteratetag:iterate name="all" scope="request" id="url"> ${url }<br /> </iteratetag:iterate> </body>
发表评论
-
JSTL标签之XML标签库,函数标签库
2011-01-20 13:14 0在JSTL中可提供了用于XML解析的操作,这样可以减少 ... -
JSTL常用标签之大聚集---下
2011-01-20 10:17 1371JSTL国际化标签库: 其主要标签如下: NO ... -
JSTL常用标签之大聚集---中
2011-01-20 08:52 969<c:forEach>标签: 主要 ... -
JSTL常用标签之大聚集---上
2011-01-17 22:53 1066JSTL已经被继承到了javaEE ... -
jsp标签编程『续』---简单开发
2011-01-17 16:03 1361在jsp1.2之前如果想要对标签库进行开发,要么继承Ta ... -
jsp标签编程『下』---TagSupport类
2011-01-17 10:11 2823掌握基本的标签定义后,可以发现定义标签时都需要继承TagSup ... -
jsp标签编程『中』---定义有属性的标签
2011-01-17 09:13 979定义一个日期标签,则用户就必须指定格式化日期的格式; Dat ... -
jsp标签编程『上』---编写标签
2011-01-16 21:30 10481,什么是JSP标签库? JSP标签库(自定义标签 ... -
javaWeb之表达式语言---初始EL
2011-01-16 08:55 9821,何为表达式语言(Expression Language,E ... -
监听器实例之---在线人员统计
2011-01-15 17:30 0当用户成功登录后,会在列表中增加此用户名称,这样就可 ... -
jsp/servlet之监听器
2011-01-15 16:05 15901,什么是监听器? 其主要的功能就是监听Web ... -
jsp/servlet之过滤器
2011-01-15 14:03 10801,什么是过滤器(filter)? 它是以一种 ... -
MVC之实例操作---MVC设计模式应用
2011-01-15 09:18 3956MVC的第一个实例-----一个登陆: 首先我们需要一个VO ... -
javaWeb之MVC模式
2011-01-13 23:11 1384javaWeb引入了servlet概念 ... -
javaWeb之Servlet跳转
2011-01-13 22:53 1837servlet跳转分为:客户端跳转和服务器端跳转; 客户端 ... -
javaWeb之Servlet
2011-01-13 22:22 1493使用jsp可以完成动态的web开发,但是在开发时发现大量的代码 ... -
javaBean实例之注册验证
2011-01-13 14:29 3105首先定义Bean: package com.keith.be ... -
javaWeb之JavaBean
2011-01-13 13:47 12321,什么是JavaBean? ... -
jsp之阶段性总结
2011-01-13 08:53 8741,web安全性! 在web目录中必须存在一个&q ... -
jsp值application
2011-01-12 22:34 11121,什么是application? application对 ...
相关推荐
12.6、开发迭代标签 12.7、BodyTagSupport类 12.8、TagExtraInfo类和VariableInfo类 12.9、使用BodyTagSupport开发迭代输出 12.10、简单标签 12.11、DynamicAttributes接口 12.12、本章摘要 第13章 标准标签...
最后,您将了解 JSTL 经过简化的表达式语言,它允许在不必使用功能齐全的编程语言的情况下对 JSTL 操作指定动态属性值。 JavaServer Pages(JSP)是用于 J2EE 平台的标准表示层技术。JSP 技术提供了用于执行计算...
12.6、开发迭代标签 12.7、BodyTagSupport类 12.8、TagExtraInfo类和VariableInfo类 12.9、使用BodyTagSupport开发迭代输出 12.10、简单标签 12.11、DynamicAttributes接口 12.12、本章摘要 第13章 标准标签...
12.6、开发迭代标签 12.7、BodyTagSupport类 12.8、TagExtraInfo类和VariableInfo类 12.9、使用BodyTagSupport开发迭代输出 12.10、简单标签 12.11、DynamicAttributes接口 12.12、本章摘要 第13章 ...
12.6、开发迭代标签 12.7、BodyTagSupport类 12.8、TagExtraInfo类和VariableInfo类 12.9、使用BodyTagSupport开发迭代输出 12.10、简单标签 12.11、DynamicAttributes接口 12.12、本章摘要 第13章 标准标签...
12.6、开发迭代标签 12.7、BodyTagSupport类 12.8、TagExtraInfo类和VariableInfo类 12.9、使用BodyTagSupport开发迭代输出 12.10、简单标签 12.11、DynamicAttributes接口 12.12、本章摘要 第13章 ...
12.6、开发迭代标签 12.7、BodyTagSupport类 12.8、TagExtraInfo类和VariableInfo类 12.9、使用BodyTagSupport开发迭代输出 12.10、简单标签 12.11、DynamicAttributes接口 12.12、本章摘要 第13章 ...
12.6、开发迭代标签 12.7、BodyTagSupport类 12.8、TagExtraInfo类和VariableInfo类 12.9、使用BodyTagSupport开发迭代输出 12.10、简单标签 12.11、DynamicAttributes接口 12.12、本章摘要 第13章 标准标签...
12.6、开发迭代标签 12.7、BodyTagSupport类 12.8、TagExtraInfo类和VariableInfo类 12.9、使用BodyTagSupport开发迭代输出 12.10、简单标签 12.11、DynamicAttributes接口 12.12、本章摘要 第13章 ...
互联网企业的开发通常是快速迭代的,并没有明确的需求一说,传统的PHP开发模式之所以受到青睐,就在于它易于变更,开发速度快,MVC模式的开发在这一点基本完败,因此,很少有互联网企业会基于Java来构建自己的前端...
4.4.3 标签语句 4.5 返回语句 4.6 综合实例:水仙花数 4.7 本章习题 第5章 字符串 5.1 字符串简介 5.1.1 字符串常量 5.1.2 String创建字符串常量 5.1.3 StringBuffer创建字符串 5.2 连接字符串 5.2.1 与...
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 20、abstract class和interface有什么区别? ...
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 17、abstract class和interface有什么区别? 声明方法...
{2.1.3}面向对象的编程}{47}{subsection.2.1.3} {2.2}继承}{48}{section.2.2} {2.2.1}super(), this()}{49}{subsection.2.2.1} {2.2.2}方法重写/覆盖}{50}{subsection.2.2.2} {2.3}修饰符}{51}{section.2.3} ...