JSTL+EL表达式方法获取Oracle的Clob字段内容

简介:
我们在页面获得数据的时候一般的类型还是很好获得的,但是一遇到Clob类型就比较麻烦,最常用的方法是用一个流将其读取出来.使用MVC框架的时候这些都是无所谓的事情,因为反正是写在java类中怎么写都行,可是不使用MVC框架,使用jsp页面+JSTLsql标签去读取数据库的数据这种方式就麻烦了,真的很麻烦,你不能在jsp上面嵌java代码吧?要是写java代码 脸上都无光啊 . 呵呵.我们这个新项目就是使用jsp+JSTL标签进行开发.可是有几个表的字段都是Clob类型的(因为要往里面存网页)存的时候使用的控件,可是取出来就取不出来了 结果我写了一个Tag(自定义标签),但是还是挺麻烦的(毕竟自定义标签不是干这个用的,他是干更高级任务的),最终我想到了EL表达式方法在我的一篇Blog中有介绍[ 自定义EL表达式方法 [url]http://tonyaction.blog.51cto.com/227462/42348[/url] ]
代码其实很简单,主要是一种技术的应用.下面是代码:
/**
      *
      *   <pre>
      *   创建人 :   王涛
      *   创建于 :   2007 - 8 - 7
      *     :
      *      根据得参数 clob(CLOB 类型 ) 获得其中的内容 , 并以 String 方式返回
      *   </pre>
      *
      *   @param   clob
      *   @return
      *   @throws   Exception
      */
     public   static  String mClob(Object clob)  throws  Exception {
        if  (clob ==  null ) {
            return   "" ;
       }
       StringBuffer clobString =  new  StringBuffer();
        if  (clob  instanceof  Clob) {
            int  y;
            char  ac[] =  new   char [4096];
           Reader reader = ((Clob) clob).getCharacterStream();
            while  ((y = reader.read(ac, 0, 4096)) != -1) {
              clobString.append( new  String(ac, 0, y));
           }
        else  {
           clobString.append(clob.toString());
       }
        return  clobString.toString();
    }
 
elfunc.tld 配置文件中需要这么写
< function >
        < description > Clob 数据内容函数 </ description >
        < name > mClob </ name >
        < function-class > com.tianjin.canic.tjeg.utils.ELFuncUtil </ function-class >
        < function-signature > java.lang.String mClob(java.lang.Object) </ function-signature >
        < example > ${elf:mClob(clob)} </ example >
     </ function >
 
 
Jsp 页面需要这么写
获得数据库中的结果集
 
< sql:transaction  dataSource = "jdbc/tjeg" >
            < sql:query  var = "fwsx_info" >
                   SELECT WBJ_ID,BL_URL,FWSX_INFO,FWSX_NAME,FW_FALV,FW_QIXIAN,FW_TIAOJIAN,FW_CAILIAO,FW_SHOUFEI,FW_DOWN FROM TJEG_FWSX WHERE ID = ?
                    < sql:param > ${param.id} </ sql:param >
            </ sql:query >
        </ sql:transaction >
迭代结果集
< c:forEach  var = "row"  items = "${fwsx_info.rows}">
< c:set  value = "${row.FW_FALV}" var="FW_FALV" scope="page"></c:set>
</ c:forEach >
然后页面将其读取出来
< c:out  value = "${elf:mClob(FW_FALV)}" escapeXml="false"></c:out>









本文转自 tony_action 51CTO博客,原文链接:http://blog.51cto.com/tonyaction/42455,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
45 7
|
3月前
|
Oracle 安全 关系型数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法探讨
删除Oracle数据库数据一般有以下2种方式:delete、drop或truncate。下面针对这2种删除oracle数据库数据的方式探讨一下oracle数据库数据恢复方法(不考虑全库备份和利用归档日志)。
|
7月前
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
104 0
|
4月前
|
分布式计算 Oracle 关系型数据库
实时计算 Flink版产品使用问题之获取Oracle的数据时无法获取clob类型的数据,该怎么办
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法
相信有很多oracle数据库用户都遇到过在操作Oracle数据库时误删除某些重要数据的情况,这个时候如果数据库没有备份且数据十分重要的,怎么才能恢复误删除的数据呢?北亚企安数据恢复工程师下面简单介绍几个误删除Oracle数据库数据的恢复方法。
|
5月前
|
SQL 存储 Oracle
Oracle数据库中游标的工作原理与优化方法
Oracle数据库中游标的工作原理与优化方法
|
6月前
|
Oracle 关系型数据库 数据库
oracle误删除数据的恢复方法
oracle误删除数据的恢复方法
55 0
|
7月前
|
存储 Oracle 安全
Oracle 12c的不可见字段:数据的“隐形斗篷”
【4月更文挑战第19天】Oracle 12c引入了不可见字段,这是一种隐藏数据列的特性,用于增强数据安全性和实现业务逻辑。不可见字段在常规查询中不显示,但参与数据操作,适合存储敏感信息或内部元数据。创建时只需在列定义中指定“INVISIBLE”属性。虽然有其限制,如特定查询可能暴露,但正确使用能有效提升数据安全性。了解和利用这一功能对数据管理员至关重要。
|
7月前
|
Oracle 关系型数据库 数据安全/隐私保护
oracle 19c 密码字段
oracle 19c 密码字段
66 0
|
7月前
|
SQL Oracle 安全
Oracle的PL/SQL异常处理方法:守护数据之旅的“魔法盾”
【4月更文挑战第19天】Oracle PL/SQL的异常处理机制是保障数据安全的关键。通过预定义异常(如`NO_DATA_FOUND`)和自定义异常,开发者能优雅地管理错误。异常在子程序中抛出后会向上传播,直到被捕获,提供了一种集中处理错误的方式。理解和善用异常处理,如同手持“魔法盾”,确保程序在面对如除数为零、违反约束等挑战时,能有效保护数据的完整性和程序的稳定性。

相关实验场景

更多

推荐镜像

更多