86.如何将数据库中的CLOB格式输出到JSP页面

1.数据库字段存储的CLOB类型字段

2.实体Bean中是Object类型对应数据库CLOB字段

3.控制层发送到JSP页面为对象


首先编写ClobToString.java类

/**
 * File Name: ClobToString.java
 *
 * File Desc: 处理clob大对象类型
 *
 * Product AB: WEB_1_0_0
 *
 * Product Name: 网站
 *
 * Author: kan.jiang
 *
 * History: 2010-9-14 created by kan.jiang
 */
package com.saiyou.util;

import java.io.*;
import java.sql.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

/**
 * 处理clob大对象类型
 *
 * @author DarrenMJ
 * @version 1.0
 * @date 2017-4-14 9:55:33
 */
public class ClobToString extends SimpleTagSupport {
    private Object clob;
    private int n;
    private String addContent;

    public String getAddContent() {
        return addContent;
    }

    public void setAddContent(String addContent) {
        this.addContent = addContent;
    }

    public int getN() {
        return n;
    }

    public void setN(int n) {
        this.n = n;
    }

    public Object getClob() {
        return clob;
    }

    public void setClob(Object clob) {
        this.clob = clob;
    }

    @Override
    public void doTag() throws JspException, IOException {
        JspContext jc = super.getJspContext();
        JspWriter out = jc.getOut();
        if (clob == null) {
            out.print("");
        }
        StringBuffer clobString = new StringBuffer();
        if (clob instanceof Clob) {
            int y;
            char ac[] = new char[4096];
            Reader reader;
            try {
                reader = ((Clob) clob).getCharacterStream();
                while ((y = reader.read(ac, 0, 4096)) != -1) {
                    clobString.append(new String(ac, 0, y));
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } else {
            clobString.append(clob.toString());
        }
        if (clobString.toString().length() > n && n > 0) {
            out.print(clobString.toString().substring(0, n) + addContent);
        } else {
            out.print(clobString.toString());
        }
    }
}


其次编写ClobTag.tld



        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
        version="2.0">

    自定义标签
    mytag
    1.0
    tag
    http://myDefineTags.com/mytags
   
        输出Colb对象
        colb
        com.saiyou.util.ClobToString
        empty

       
            需要输出的Colb对象
            clob
            true
           
            true
       

       
            字符串超过n的时候截取
            n
            true
           
            true
       

       
            追加内容
            addContent
            true
           
            true
       

   



需要注意的是,要对应的ClobToString.java文件所在路径(如图)

  com.saiyou.util.ClobToString

然后到JSP页面

<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="p" uri="tld/ClobTag.tld"%>

。。。

 



要注意的是<%@taglib prefix="p" uri="tld/ClobTag.tld"%> 写你tld所在位置 ,如果不确定对不对,按住CTRL键 鼠标左键点一下,看能不不能点进去(如图)




你可能感兴趣的:(Java软件开发,Oracle数据库)