案例-开发转义标签和打包自己的标签库

开发转义标签##

比如:在jsp页面里有这样一句代码 点点 在页面里显示时是以超链接的样式显示的,但现在我们要让它原始显示。就像在论坛里有人问链接的代码什么,有人回复了上面代码块类似的内容,点提交会促进数据库里,从数据库里取出来时需要转义输出,否则就只会显示“点点”,而不会显示上面代码块一样的内容。

  1. 写jsp页面,代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="/example" %>


    开发转义标签



    点点



  1. 标签处理器类 HTMLFilterTag

在这个类里的 filter 方法可以直接在 D:\Program Files-apache\apache-tomcat-7.0.22(Tomcat安装目录)\webapps\examples\WEB-INF\classes\util\HTMLFilter.java 下找到。

package cn.itcast.web.tagexample;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;
import java.io.StringWriter;

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 static String filter(String message) {
        if (message == null)
            return (null);
        char content[] = new char[message.length()];
        message.getChars(0, message.length(), content, 0);
        StringBuilder result = new StringBuilder(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());
    }
}
  1. 在tld文件里添加描述:

        htmlfilter
        cn.itcast.web.tagexample.HTMLFilterTag
        scriptless
    
结果.png

打包自己的标签库##

我这里虽然生成了JAR文件,但是执行不了,我就附上别人写的分别在Eclipse和IDEA两种开发工具下的导出成JAR文件的方法吧!

Eclipse: http://blog.csdn.net/acmman/article/details/51381382
IDEA: http://www.cnblogs.com/blog5277/p/5920560.html

你可能感兴趣的:(案例-开发转义标签和打包自己的标签库)