日期:2014-05-16  浏览次数:20422 次

jsp页面用自定义标签显示Clob类型数据

?

?

/**

?* 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.sinitek.web.taglib.common;

?

import java.io.*;

import java.sql.*;

import javax.servlet.jsp.*;

import javax.servlet.jsp.tagext.*;

/**

?* 处理clob大对象类型

?* @author kan.jiang

?* @version 1.0

?* @date 2010-9-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**********************************
<?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
?? ? ? ?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">

?? ?<description>自定义标签</description>
?? ?<display-name>mytag</display-name>
?? ?<tlib-version>1.0</tlib-version>
?? ?<short-name>tag</short-name>
?? ?<uri>http://myDefineTags.com/mytags</uri>
?? ?<tag>
?? ? ? ?<description>输出Colb对象</description>
?? ? ? ?<name>colb</name>
?? ? ? ?<tag-class>co