ServletJsp之自定义标签
2016-07-29 11:42
369 查看
这次我们尝试在JSP中自定义一个标签,通过这个标签来遍历集合。
首先我们建立自定义标签类IterateSimpleTag:
注意get和set方法一定要有,系统会自动调用。
下面我们在WEB-INF中添加一个tag.tld文件,用来注册标签类。
最后我们再JSP中来调用这个标签:
首先我们建立自定义标签类IterateSimpleTag:
public class IterateSimpleTag extends SimpleTagSupport { @Override public void doTag() throws JspException, IOException { Object value = this.getJspContext().getAttribute(items); if (value != null && value instanceof List) { Iterator iter = ((List) value).iterator(); while (iter.hasNext()) { this.getJspContext().setAttribute(var, iter.next()); getJspBody().invoke(null); // 响应页面 } } } private String var; private String items; public String getVar() { return var; } public void setVar(String var) { this.var = var; } public String getItems() { return items; } public void setItems(String items) { this.items = items; } }
注意get和set方法一定要有,系统会自动调用。
下面我们在WEB-INF中添加一个tag.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> <short-name>iterateTag</short-name> <tag> <name>iterateSimple</name> <tag-class> com.tth.tag.IterateSimpleTag </tag-class> <body-content>scriptless</body-content> <attribute> <name>var</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>items</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>
最后我们再JSP中来调用这个标签:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="tag" uri="/WEB-INF/tag.tld"%> <%@ page import="java.util.*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <% List people = new ArrayList(); people.add("1"); people.add("1124"); people.add("1235235"); people.add("12352523523"); pageContext.setAttribute("people", people); %> </head> <body> <tag:iterateSimple items="people" var="p"> <p>${p }</p> </tag:iterateSimple> </body> </html>
相关文章推荐
- JSP/PHP基于Ajax的分页功能实现
- 开发阶段Jetty运行Jsp报错且响应空白
- jsp简单实现页面之间共享信息的方法
- Apache Web让JSP“动”起来
- JSP学习经验小结分享
- JSP 多条SQL语句同时执行的方法
- jsp登录会话的简单实现
- 在jsp页面中响应速度提高的7种方法分享
- (jsp/html)网页上嵌入播放器(常用播放器代码整理)
- 使用JSP制作一个超简单的网页计算器的实例分享
- JSP上传excel及excel插入至数据库的方法
- 浅析JSP的9大内置对象和4大作用域对象
- JSP中文乱码常见3个例子及其解决方法
- jsp实现将动态网页转换成静态页面的方法
- JSP基于Bootstrap分页显示实例解析
- JSP避免Form重复提交的三种方案
- 纯jsp实现的倒计时动态显示效果完整代码
- JSP自定义标签入门学习