jsp简洁自定义标签的forEach遍历及转义字符示例_.docx

上传人:PIYPING 文档编号:11651041 上传时间:2021-08-28 格式:DOCX 页数:7 大小:13.24KB
返回 下载 相关 举报
jsp简洁自定义标签的forEach遍历及转义字符示例_.docx_第1页
第1页 / 共7页
jsp简洁自定义标签的forEach遍历及转义字符示例_.docx_第2页
第2页 / 共7页
jsp简洁自定义标签的forEach遍历及转义字符示例_.docx_第3页
第3页 / 共7页
jsp简洁自定义标签的forEach遍历及转义字符示例_.docx_第4页
第4页 / 共7页
jsp简洁自定义标签的forEach遍历及转义字符示例_.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《jsp简洁自定义标签的forEach遍历及转义字符示例_.docx》由会员分享,可在线阅读,更多相关《jsp简洁自定义标签的forEach遍历及转义字符示例_.docx(7页珍藏版)》请在三一文库上搜索。

1、jsp简洁自定义标签的forEach遍历及转义字符示例_ 这篇文章主要介绍了jsp简洁自定义标签的forEach遍历及转义字符,需要的伴侣可以参考下 接着昨天的,假如forEach中的items类型是map或者Collection类型的,怎样用法增加for循环; 首先还是创建一个标签处理器类,定义两个属性,String var; Object items; 由于items要迭代各种集合,所以要用法Object; 然后重写setter方法; 声明一个成员变量,集合类型的, 和上面两个属性是不相同的,这个是用在类里的, 在items的setter方法中,推断items的类型 然后继承他的doTag

2、方法; 代码如下: public class ForEachTag2 extends SimpleTagSupport private String var; private Object items; private Collection collection; public void setVar(String var) this.var=var; public void setItems(Object items) this.items=items; if(items instanceof Map) Map map = (Map) items; collection = map.entr

3、ySet(); if(items instanceof Collection)/set list collection =(Collection) items; if(items.getClass().isArray() collection = new ArrayList(); int len = Array.getLength(items); for(int i=0;ilen;i+) Object obj= Array.get(items, i); collection.add(obj); Override public void doTag() throws JspException,

4、IOException Iterator iterator = collection.iterator(); while(iterator.hasNext() Object obj = iterator.next(); this.getJspContext().setAttribute(var, obj); this.getJspBody().invoke(null); 然后,写tld描述标签 代码如下: tag nameforEach2/name tag-classcom.csdn.items.ForEachTag2/tag-class body-contentscriptless/body

5、-content attribute namevar/name requiredtrue/required /attribute attribute nameitems/name requiredtrue/required rtexprvaluetrue/rtexprvalue /attribute /tag 最终在jsp文件中写items的各种类型 代码如下: % Map map = new HashMap(); map.put(aa,aaaa); map.put(bb,bbbb); map.put(cc,cccc); map.put(dd,dddd); map.put(ee,eeee);

6、request.setAttribute(map,map); % c:forEach2 var=str items=$map $str.key -$str.value br / /c:forEach2 % String strs =aa,bb,cc ; request.setAttribute(strs,strs); % c:forEach2 var=str items=$strs $strbr /c:forEach2 接下里是一个转义的自定义标签: 步骤都一样: 代码如下: public void doTag() throws JspException, IOException JspFra

7、gment jf = this.getJspBody();/猎取jsp文件中的内容 StringWriter sw = new StringWriter();/猎取一个流对象 jf.invoke(sw);/吧内容放到流对象中 String s =sw.toString();/把jsp内容转成字符串 s= filter(s);/猎取进行转义之后的字符 this.getJspContext().getOut().write(s);/写入扫瞄器 public String filter(String message) /对字符串进行转义的方法 if (message = null) return (

8、null); char content = new charmessage.length(); message.getChars(0, message.length(), content, 0); StringBuffer result = new StringBuffer(content.length + 50); for (int i = 0; i content.length; i+) switch (contenti) case : result.append(); break; case : result.append(); break; case : result.append(); break; case : result.append(); break; default: result.append(contenti); return (result.toString(); 接下来就一样了, 代码如下: tag namehtmlFilter/name tag-classcom.csdn.items.HTMLFilter/tag-class body-contentscriptless/body-content /tag c:htmlFilter a href= aaa/a /c:htmlFilter Jsp标签文件的内容原样输出; 更多信息请查看IT技术专栏 .

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1