`
齐晓威_518
  • 浏览: 618689 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

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>com.sinitek.web.taglib.common.ClobToString</tag-class>
        <body-content>empty</body-content>
 
        <attribute>
            <description>需要输出的Colb对象</description>
            <name>clob</name>
            <required>true</required>
            <!-- 必须出现 -->
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <description>字符串超过n的时候截取</description>
            <name>n</name>
            <required>true</required>
            <!-- 必须出现 -->
            <rtexprvalue>true</rtexprvalue>
        </attribute>
        <attribute>
            <description>追加内容</description>
            <name>addContent</name>
            <required>true</required>
            <!-- 必须出现 -->
            <rtexprvalue>true</rtexprvalue>
        </attribute>
    </tag>
 
</taglib>
 
**************************jsp中使用******************
<p:colb clob="${clobName}" n="45" addContent="..."/>
分享到:
评论

相关推荐

    Mybatis 处理 CLOB、BLOB 类型数据

    MyBatis 处理 CLOB、BLOB 类型数据是指在使用 MyBatis 框架时,如何正确地处理大字段类型的数据。CLOB(Character Large OBject)和 BLOB(Binary Large OBject)都是大字段类型,用于存储大量的数据。 CLOB 类型...

    数据库中clob类型转换的问题 数据库中clob类型转换的问题

    2. **数据展示**:为了便于前端展示,有时需要将CLOB类型的数据转换为更适合网页显示的格式。 3. **数据迁移**:在进行数据库迁移或重构时,可能需要将原有的CLOB字段转换为新的数据类型以适应新环境的要求。 ###...

    mybatis 对clob类型转换

    在使用MyBatis框架进行数据操作时,我们可能会遇到CLOB类型数据的读写问题,尤其是在转换和插入数据库时。本篇将详细探讨MyBatis中处理CLOB类型数据的转换以及解决可能出现的异常情况。 首先,MyBatis是Java中的一...

    运用Java如何存取Oracle中的CLOB类型字段

    通过上述示例,我们可以看到如何使用Java通过JDBC操作Oracle数据库中的CLOB类型数据。这些基本的操作是开发人员在日常工作中经常需要用到的功能之一。掌握这些技术对于实现高效、可靠的数据库应用程序至关重要。此外...

    Oracle中CLOB类型文字处理代码

    在Oracle数据库中,CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型,如XML文档、长篇文章或任何其他非二进制的大型数据。本文将深入探讨Oracle中的CLOB类型文字处理,以及如何在实际操作中...

    jdbc 处理clob类型字段

    当我们在处理大型文本数据时,例如XML文档、长篇文章或者大段代码,数据库通常会提供CLOB(Character Large Object)类型来存储这类数据。本主题主要探讨如何使用JDBC有效地操作Oracle数据库中的CLOB类型字段,包括...

    java存储oracle中的clob类型

    CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型,在Oracle数据库中被广泛使用,可以支持最大4GB的数据量。在Java编程中,为了能够有效地与Oracle数据库中的CLOB类型交互,Java提供了`java.sql...

    关于Clob类型在Hibernate中 的应用小结

    Clob”类型在数据库中主要用于存储大对象(Large Object),如长文本、XML文档等大量数据。在Oracle数据库中,Clob是用来存储可变长度的非结构化数据,如长篇文字、HTML文档等。在Java世界中,尤其是在持久化框架...

    类似于wmsys.wm_concat的自定义函数clob版

    使用这种自定义的CLOB聚合函数,你可以避免`WM_CONCAT`的长度限制问题,同时也能充分利用CLOB类型的优势处理大数据量的字符串合并。在实际应用中,这尤其适用于报告、分析或数据导出等场景,其中可能需要合并大量的...

    向orcale数据库中插入一个txt格式的文本文档,即clob类型的数据

    向orcale数据库中插入一个txt格式的文本文档,即clob类型的数据

    jsp读取大对象CLOB并生成xml文件示例

    在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而CLOB(Character Large Object)是数据库中用于存储大量字符数据的数据类型。本示例将讲解如何在JSP中读取数据库中的CLOB类型数据,并将...

    sql server中的image类型的数据导出到oracle的clob字段中

    我们使用了 Java 语言和 JDBC 驱动程序来实现数据的导出,并将 Image 类型数据写到文件中,然后将文件中的数据读取出来,并将其设置到 Oracle 的 CLOB 字段中。这种方法可以帮助我们实现不同数据库管理系统之间的...

    将长于4000字符的字符串转化为CLOB类型存入数据库

    在Oracle数据库中,当我们遇到需要存储超过4000个字符的文本数据时,使用CLOB(Character Large Object)类型便显得尤为重要。下面将详细介绍如何在C#环境下通过Oracle.NET接口实现将长于4000字符的字符串转化为CLOB...

    如何将DB2数据库中的大对象(BLOB,CLOB)数据类型复制到Oracle数据库中

    Oracle数据库同样支持BLOB和CLOB数据类型,但需要特殊配置来处理来自其他数据库的大对象数据。 3. **特殊配置策略**: - **联邦能力**:利用WII的联邦功能,先将DB2中的非BLOB字段复制到Oracle目标表中。 - **...

    图片存数据库 clob类型

    在本篇文章中,我们将深入探讨如何使用Spring MVC框架将图片存储到数据库中,并特别关注CLOB类型的使用。 #### 二、CLOB类型概述 CLOB(Character Large Object)是数据库中用于存储大量文本数据的一种数据类型。...

    ORACLE中CLOB字段转String类型

    在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何其他大型文本内容。然而,在处理CLOB...

    关于Oracle的 Clob数据类型在Hibernate中的应用小结

    Oracle的Clob数据类型在数据库中用于存储大对象(Large Object),如长文本、XML文档等大量字符数据。在Hibernate框架中,Clob类型的字段处理是数据库操作中的一个关键环节,尤其是在处理大量文本数据时。以下是对...

    关于oracle clob 类型字段重建索引SQL及修复用户表空间索引空间的存储过程

    在Oracle数据库中,CLOB(Character Large Object)类型字段用于存储大量的文本数据,如XML文档、长篇文章等。由于其特殊性,处理CLOB类型的字段时可能会遇到性能问题,特别是当涉及索引时。本话题将围绕如何针对...

    weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 类型转换解决办法

    这是因为 WebLogic 服务器为了更好地管理和操作数据库连接,会使用自己的包装类 `weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB` 来表示 CLOB 类型的数据,而不是直接使用 Oracle 提供的标准 `oracle.sql.CLOB` 类。...

Global site tag (gtag.js) - Google Analytics