`

JSP定制标记——在JSP标记中自定义脚本编程变量

阅读更多

package tag20;

import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;
import java.io.IOException;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;

public class Tag20 extends BodyTagSupport {
private String string;
private List lists;
private Iterator iters;
public void setString(String string) {this.string = string;}
public void setLists(List lists) {this.lists = lists;}
public void doInitBody() throws JspException {
if (lists.size() >= 0) {
iters = lists.iterator();
}
if (iters.hasNext()) {
pageContext.setAttribute(string, iters.next());
}
}
public int doAfterBody() throws JspException {
try {
if (iters.hasNext()) {
pageContext.setAttribute(string, iters.next());
return EVAL_BODY_AGAIN;
} else {
getBodyContent().writeOut(getPreviousOut());
}
} catch (IOException ioe) {
throw new JspException(ioe.getMessage());
}
return SKIP_BODY;
}
}

package tag20;

import javax.servlet.jsp.tagext.TagExtraInfo;
import javax.servlet.jsp.tagext.TagData;
import javax.servlet.jsp.tagext.VariableInfo;

public class Info20 extends TagExtraInfo {
public VariableInfo[] getVariableInfo(TagData data) {
String string = (String) data.getAttribute("string");
VariableInfo infos = new VariableInfo(string,
"java.lang.String",
true,
VariableInfo.NESTED);
return new VariableInfo[] {infos};
}
}

<%@ page contentType="text/html;charset=GBK" %>
<%@ taglib prefix="tag" uri="tag20.tld" %>
<%@ page import="java.util.List,
java.util.ArrayList" %>

<%
ArrayList lists = new ArrayList();
lists.add("aaaaaaaaaaaaaaaaaaaaaa");
lists.add("bbbbbbbbbbbbbbbbbbbbbb");
lists.add("cccccccccccccccccccccc");
lists.add("dddddddddddddddddddddd");
lists.add("eeeeeeeeeeeeeeeeeeeeee");
lists.add("ffffffffffffffffffffff");
lists.add("gggggggggggggggggggggg");
%>
<tag:tag20 string="iters" lists="<%=lists%>">
<font color="red">■■■■■■■■■</font>
<%=iters%>
<font color="blue">■■■■■■■■■</font><br>
</tag:tag20>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC '-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN' 'http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd'>

<taglib>
<tlib-version>1.2</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>--------</short-name>
<info>```````</info>
<tag>
<name>tag20</name>
<tag-class>tag20.Tag20</tag-class>
<tei-class>tag20.Info20</tei-class>
<body-content>JSP</body-content>
<attribute>
<name>string</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>

<attribute>
<name>lists</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

结果:

■■■■■■■■■ aaaaaaaaaaaaaaaaaaaaaa ■■■■■■■■■
■■■■■■■■■ bbbbbbbbbbbbbbbbbbbbbb ■■■■■■■■■
■■■■■■■■■ cccccccccccccccccccccc ■■■■■■■■■
■■■■■■■■■ dddddddddddddddddddddd ■■■■■■■■■
■■■■■■■■■ eeeeeeeeeeeeeeeeeeeeee ■■■■■■■■■
■■■■■■■■■ ffffffffffffffffffffff ■■■■■■■■■
■■■■■■■■■ gggggggggggggggggggggg ■■■■■■■■■

分享到:
评论

相关推荐

    jsp网络编程——源文件(01——05)

    在本教程的"jsp网络编程——源文件(01——05)"中,我们将逐步学习JSP的基本概念、语法结构以及常用功能。 **章节概览** 1. **chap01:JSP基础** - JSP的起源与发展 - JSP与HTML、Servlet的关系 - JSP基本结构...

    jsp网络编程——源文件(10——11)

    【标题】"jsp网络编程——源文件(10——11)"主要涵盖了JSP(Java Server Pages)技术在网络编程中的应用,这是Java Web开发的重要组成部分。这两个章节可能包括了第10章和第11章的学习内容,涉及到JSP的基础语法、...

    jsp开发案例——租房系统jsp列子

    3. JSP脚本元素:`! %&gt;`用于定义Java变量和方法。 4. JSP动作标签:如`&lt;jsp:forward&gt;`, `&lt;jsp:include&gt;`等,实现页面跳转和内容包含。 5. EL(Expression Language):简化了对JavaBeans属性的访问。 6. JSTL(Java...

    jsp实例开发——购物车

    【JSP实例开发——购物车】是一个典型的网上商城系统中的重要组成部分,主要涉及网页动态编程技术JSP(Java Server Pages)以及购物车功能的实现。在这个实例中,我们将深入探讨如何利用JSP来构建一个简单但功能齐全...

    jsp学习笔记——初学者的选择

    【JSP学习笔记——初学者的选择】 JSP(JavaServer Pages)是JavaEE平台中用于构建动态网页的应用技术。作为初学者,理解JSP的基本概念和技术特性至关重要。 1. **为何选择JSP?** JSP的出现主要是为了解决...

    jsp高级编程(关于jsp编程的很好的电子书)

    **JSP(JavaServer Pages)**是Java技术中用于创建动态网页的一种标准,它结合了HTML、Java代码和脚本语言,使得开发者可以在服务器端处理数据并生成动态内容。本书《JSP高级编程》深入探讨了JSP的核心概念和技术,...

    jsp毕业设计——JSP考试管理系统(源代码+论文).zip

    【JSP毕业设计——JSP考试管理系统】是一个基于Java服务器页面技术(JSP)的项目,主要用于实现教育机构或学校中的在线考试管理功能。这个系统包括了完整的源代码和相关论文,为学习JSP和Web开发的学生提供了一个...

    2020收集——泛微 Ecology流程表单常用JS脚本

    1. Linux环境下部署手机端应用时,遇到Google浏览器访问乱码问题,可以在启动脚本中添加环境变量NLS_LANG,设置为AMERICAN_AMERICA.ZHS16GBK,以解决字符编码问题。 2. 泛微OA系统中,流程表单可以通过JS脚本获取...

    jsp毕业设计——JSP EIMS系统-OA子系统的设计与开发(源代码+论文).zip

    JSP作为服务器端脚本语言,常用于构建动态Web应用程序,它结合了HTML、Java代码和自定义标签库,为开发人员提供了一种高效且灵活的网页编程方式。 首先,我们要理解EIMS系统的核心目标是整合企业内部的信息资源,...

    JSP页面的基本结构——求圆面积周长

    JSP脚本是一种Java语句或表达式,它可以嵌入到JSP页面中,从而实现动态网页的开发。常见的JSP脚本有: * 声明脚本:! ... %&gt;,用于声明变量或方法。 * 表达式:,用于输出表达式的结果。 * 代码脚本:,用于编写...

    JSP网络编程从基础到实践

    声明用于定义变量或方法,这些变量和方法可以在Java代码块中使用。表达式则用于输出Java表达式的结果到HTML页面中。 在JSP中,我们可以使用内置对象,如request、response、session和application。Request对象存储...

    jsp程序设计第2版习题解答含题目.docx

    jsp变量作用域是指jsp变量在jsp页面中的有效范围。jsp变量可以分为两种:成员变量和局部变量。成员变量在整个页面内都有效,而局部变量只在页面后继的所有程序片以及表达式部分内有效。 jsp指令标记和动作标记 jsp...

    JSP论坛——Forum

    4. JSP脚本元素:包括声明(Declarations)、脚本片段(Scriptlets)和表达式(Expressions)。 **四、Eclipse开发环境** Eclipse是开发`Forum`项目的得力助手,提供了丰富的插件支持,如MyEclipse(专为Web应用...

    精通JSP编程技术电子书

    4. **JSP脚本元素**:包括脚本声明、表达式和脚本块。它们分别用于声明变量、输出数据到页面和编写Java代码。 5. **JSP内置对象**:如request、response、session、application等,它们提供了对HTTP请求和响应的...

    JSP源码——Jsp考试系统_jspks.zip

    2. **JSP脚本元素**:包括声明(Declarations)、脚本(Scriptlets)和表达式(Expressions)。声明部分用于定义变量或方法,脚本lets用于编写Java代码块,而表达式则会将其内容转换为字符串并输出到页面上。 3. **...

    JSP标准标记库

    JSTL的出现旨在减少在JSP页面中使用Java脚本,提高代码的可读性和可维护性。 **1. JSTL的组成** JSTL由多个核心标签库组成,每个库专注于不同的功能领域: - **Core库**:提供了基本的控制结构,如循环、条件语句...

    从零开始学习jsp编程

    在Web开发中,JSP通常作为View层,与Servlet(Controller)和模型(Model)配合,实现MVC架构。Servlet处理请求,调用业务逻辑,更新模型数据,然后将控制权交给JSP来生成响应视图。 六、JSP与Servlet的关系 JSP...

    jsp简单语法,servlet,JSP概述,JSP页面构成,注释,指令,脚本元素,动作元素,错误处理

    **JSP(Java Server Pages)** 是一种动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码,从而实现服务器端的编程。在Java Web应用开发中,JSP和Servlet经常配合使用,为用户提供交互式的网页服务。 **1. ...

    Web程序设计——JSP-源代码

    【标题】"Web程序设计——JSP-源代码"涵盖了Web开发中的一个重要方面,即JavaServer Pages(JSP)技术。JSP是一种用于构建动态网页的服务器端脚本语言,它将HTML、XML或其他标记语言与Java代码相结合,使得开发者...

Global site tag (gtag.js) - Google Analytics