JSP开发转义自定义标签

转义标签非常常用,这个东西是在论坛里面经常会被使用的东西,比如对方想问一个问题,这个超链接怎么写,然后你写出来href肯定会被浏览器以正常的方式显示而不能达到需求,所以需要转义标签的支持。下面来具体说一下转义标签到底该怎么进行写。

首先还是代码

package com.bird.web.tag.example; import java.io.IOException; import java.io.StringWriter; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.JspFragment; import javax.servlet.jsp.tagext.SimpleTagSupport; public class HtmlFilterTag extends SimpleTagSupport { @Override public void doTag() throws JspException, IOException { StringWriter sw = new StringWriter(); JspFragment jf = this.getJspBody(); jf.invoke(sw); String content = sw.getBuffer().toString(); content = filter(content); this.getJspContext().getOut().write(content); } public String filter(String message) { if (message == null) return (null); char content[] = new char[message.length()]; message.getChars(0, message.length(), content, 0); StringBuffer result = new StringBuffer(content.length + 50); for (int i = 0; i < content.length; i++) { switch (content[i]) { case '<': result.append("<"); break; case '>': result.append(">"); break; case '&': result.append("&"); break; case '"': result.append("""); break; default: result.append(content[i]); } } return (result.toString()); } }
然后描述完毕就可以使用了

<tag> <name>htmlFilter</name> <tag-class>com.bird.web.tag.example.HtmlFilterTag</tag-class> <body-content>scriptless</body-content> </tag>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <%@taglib uri="/example" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>开发转义标签</title> </head> <body> <c:htmlFilter> <a href="">点点</a> </c:htmlFilter> </body> </html>
效果如下


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值