JSTL+EL表达式方法获取Oracle的Clob字段内容[通俗易懂]

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,如需转载请自行联系原作者
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107944.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux dstat,使用Dstat来进行Linux综合性能诊断

    linux dstat,使用Dstat来进行Linux综合性能诊断性能测试、评估和优化一直是系统管理维护人员工作的重点。当我们针对一台生产应用进行分析的时候,获取如CPU、内存、IO、网络吞吐和进程负载的基础数据,对于后续的性能评测和优化是至关重要的。Linux作为目前应用最广泛的服务器操作系统,为了应对各种性能问题,已经发展出很多原生的性能检测工具。从top、vmstat、iostat到mpstat,已经可以对操作系统主要性能方面进行详细的分析。面对越来越复杂…

    2022年6月24日
    19
  • 像素密度的计算[通俗易懂]

    像素密度的计算[通俗易懂]手机屏幕5.0,指的是手机对角线的长度是5.0英寸,像素是960*1280,则像素密度的计算公式就是960的平方+1280的平方开根号除以5,得到的就是像素密度,一般有120,160,320,480

    2022年6月10日
    65
  • ArrayList扩容机制。

    ArrayList扩容机制。1)直接new一个ArrayList对象时(未指定初始容量大小)是一个空的数组,容量大小为零。publicArrayList(){//DEFAULTCAPACITY_EMPTY_ELEMENTDATA变量为一个空的数组privatestaticfinalObject[]DEFAULTCAPACITY_EMPTY…

    2022年5月25日
    30
  • java实现Math.sqrt函数

    java实现Math.sqrt函数难易程度:★★★重要性:★★★★★度小满金融的面试中出现过:自己实现Math.sqrt函数//计算:Math.sqrt(num)//原理:牛顿迭代法://https://baike.baidu.com/item/%E7%89%9B%E9%A1%BF%E8%BF%AD%E4%BB%A3%E6%B3%95/10887580?fr=aladdinprivate…

    2022年5月20日
    62
  • 永磁同步电机矢量控制(一)——数学模型

    导师研究的课题是永磁同步电机的控制,首先给我安排的任务就是将其矢量控制系统仿真搭建出来。本文记录矢量控制系统学习过程。因为是初学我的理解可能不够,其中每个内容的出处都会在文章内标注出来,大家可以参考原文原著。1、永磁同步电机的数学模型(参考于解小刚、陈进采用Id=0永磁同步电机矢量控制文章)永磁同步电机是一个非线性系统,具有多变量、强耦合的特点。我们对其分析的时候有以下假设:…

    2022年4月6日
    119
  • 交通信号灯控制器C语言代码,交通信号灯控制器代码及说明.doc

    交通信号灯控制器C语言代码,交通信号灯控制器代码及说明.docPAGEPAGE3课程设计报告课程名称:FPGA现代数字系统设计设计名称:交通信号灯控制器姓名:***学号:2010000379专业:通信指导教师:***起止日期:2010.12.25-2011.1.9课程设计任务书设计名称:设计要求:(1)设计一个交通信号灯控制器…

    2022年9月24日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号