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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【技术类】不得不看的Landsat 8常用的波段组合形式

    【技术类】不得不看的Landsat 8常用的波段组合形式Landsat8hasbeenonlineforacoupleofmonthsnow,andtheimageslookincredible.WhileallofthebandsfrompreviousLandsatmissionsarestillincorporated,thereareacoupleofnewones,such

    2022年7月23日
    9
  • QStringList中begin()、end()与first()、last()

    QStringList中begin()、end()与first()、last()QStringList的begin:返回的是迭代器指向第一项iteratorQStringList的end:返回的是迭代器指向最后一项iteratorQStringList的last:返回列表第一项的引用,前提该表不为空QStringList的last:返回列表最后一项的引用…

    2022年5月10日
    84
  • python删除文本最后一行_用python删除文件中的最后一行

    python删除文本最后一行_用python删除文件中的最后一行如何用python删除文件的最后一行?输入文件示例:helloworldfoobar输出文件示例:helloworldfoo我创建了以下代码来查找文件中的行数,但是我不知道如何删除特定的行号。我是新来的python–所以如果有一个更简单的方法–请告诉我。try:file=open(“file”)exceptIOError:print”Failedtoreadfile.”cou…

    2022年5月18日
    45
  • pycharm: 前进/回退到上一个操作的地方

    pycharm: 前进/回退到上一个操作的地方View–>toolbar打开工具栏,里面有前进和后退到上一位置的跳转键,非常实用。view–>ToolButtons打开左侧的structure

    2022年8月29日
    3
  • 微商分销功能不能用了

    微商分销功能不能用了“三级以上分销将会被停止支付功能和封停账号”,日前一则“不利”消息彻底引爆微商的主要阵地——微信朋友圈。一时间关于分销三级变二级、微商寒冬将至的说法再次疯传。自央视曝光部分微商涉嫌传销之后,微信今年接连对微商们“动刀”,强化管理意在行业正规化发展,失去多级分销之后,依靠内容深度揽客的方式成为微商转型的方向。微商连遭重创刚刚过去的一周,微商们再次体验到了人生的跌宕起伏。认证为腾讯微信

    2022年5月13日
    45
  • 华硕笔记本r414u怎么安装键盘_华硕R414UV7200笔记本安装win7系统操作方法

    华硕笔记本r414u怎么安装键盘_华硕R414UV7200笔记本安装win7系统操作方法华硕R414UV7200笔记本搭载Intel酷睿i57200U处理器,拥有4GB内存以及500GB硬盘容量,极速读取和存储,电脑运行更高效。14英寸英寸的显示屏,屏幕分辨率达1366×768,画面自然,畅玩游戏更有身临其境的逼真效果,绝对让你乐不停。那么华硕R414UV7200怎么安装win7系统呢?下面就让我们一起来看看华硕R414UV7200安装win7系统的操作方法。安装准备工作:2、将…

    2022年5月15日
    51

发表回复

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

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