jsp 页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/includes/ctx.jsp" %>
<%@ taglib uri="/RemoveListItems" prefix="z"%>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>角色管理</title>
</head>
<body>
<z:for items="${rolelist}" var="z">
<p>${z.rolename}</p>
</z:for>
</body>
</html>

WEB-INF  目录下创建tld 文件

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.5" 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">
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>eRedLab JSPTag Library</shortname>
<uri>/RemoveListItems</uri>
<info>自定义标签</info> <tag>
<name>for</name>
<tagclass>com.oa.tag.Repeater</tagclass>
<bodycontent>scriptless</bodycontent>
<info></info>
<attribute>
<name>items</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>var</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>index</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

java 类代码

import java.util.List;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport; public class Repeater extends TagSupport { /**
*
*/
private static final long serialVersionUID = 4086401651029717288L;
private List<?> items;
private String var;
private String index;
private int i; @Override
public int doStartTag() throws JspException { if (items == null || items.size() == 0){
return SKIP_BODY;
}
if(index==null)index = ""; i = 0;
if(i<items.size()){
pageContext.setAttribute(var, items.get(i));
pageContext.setAttribute(index, i);
} return EVAL_BODY_INCLUDE;
} @Override
public int doAfterBody() throws JspException {
i++;
if(i < items.size()){
pageContext.setAttribute(var, items.get(i));
pageContext.setAttribute(index, i);
return EVAL_BODY_AGAIN;
} return SKIP_BODY;
} @Override
public int doEndTag() throws JspException {
return EVAL_PAGE;
} public void setItems(List<?> items) {
this.items = items;
} public void setVar(String var) {
this.var = var;
} public void setIndex(String index){
this.index = index;
} }

  

最新文章

  1. 对session的理解
  2. 自话自说——POI使用需要注意一个地方
  3. Android项目实战(三):实现第一次进入软件的引导页
  4. Caffe学习系列(1):安装配置ubuntu14.04+cuda7.5+caffe+cudnn
  5. debian7下部署nginx服务器
  6. boost.asio源码剖析(二) ---- 架构浅析
  7. 乱序双发射 和 GHB的分支预测
  8. html5时间选择器
  9. Python Open Flash Chart (pyOFC2) — Home
  10. 近期在调用 calendar.js 的时候出现中文乱码! 解决方式
  11. [Selenium With C#学习笔记] Lesson-02 Web元素定位
  12. configparser模块的常见用法
  13. dnSpy 强大的.Net反编译软件
  14. 405 css样式的研究 list-style-type 属性研究
  15. RESTful协议
  16. hyperscan在低版本系统应用问题
  17. win7获取system32所有权
  18. 谈谈在 .Net 平台上的 软件生态 和 软件生产力
  19. 跟踪分析Linux内核的启动过程小解
  20. SharpGL学习笔记(九) OpenGL的光照模型, 术语解释

热门文章

  1. pthread_create()创建线程时传入多个參数
  2. SpringMVC-Interceptor拦截Session登录
  3. Mysql中You can&#39;t specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)。
  4. 初学ToggleButton 点击button,更换button背景图片;再次点击,恢复之前背景图
  5. iis browse的时候,直接通过本地的局域网ip打开页面
  6. 通过QEMU-GuestAgent实现从外部注入写文件到KVM虚拟机内部
  7. 10. Regular Expression Matching[H]正则表达式匹配
  8. SQL语句之Group By
  9. Hibernate框架学习(三)——实体规则、对象状态、一级缓存
  10. Android自定义日历控件(继承系统控件实现)