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


相关推荐

  • Tomcat 日志概述[通俗易懂]

    Tomcat 日志概述[通俗易懂]1   Tomcat日志概述Tomcat日志信息分为两类:一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息。二是访问日志信息,它记录的访问的时间,IP,访问的资料等相关信息。2   Tomcat日志配置2.1 访问日志的配置默认tomcat不记录访问日志,如下方法可以使

    2022年6月20日
    27
  • 本地的html源文件,本地书源导入教程

    本地的html源文件,本地书源导入教程本地书源导入教程免贵姓操•2018年05月05日请注意,本文编写于1143天前,最后修改于96天前,其中某些信息可能已经过时。0×1.单个书源导入操作步骤:复制下面的书源代码,在[书源管理]点击“+”号,然后点击右上角的3个点,选择[粘贴书源],再点击[保存],然后书源前面勾选启用即可。{“bookSourceGroup”:””,”bookSourceName”…

    2022年6月15日
    51
  • Android sha1_android studio打包apk教程

    Android sha1_android studio打包apk教程目录开发版SHA1获取:发布版SHA1获取:开发版SHA1获取:首先win+r后点击确认输入cd.android再输入命令行:keytool-list-v-keystore~/.android/debug.keystore-aliasandroiddebugkey(注意目录选择、开发版本、发布版本等问题)密码:原始密码一般为android,(输入密码时时没有变化的直接输入回车就行)发布版SHA1获取:需要知道签名文件key.

    2022年8月11日
    3
  • linux route 刷新_linux route命令详解

    linux route 刷新_linux route命令详解考试题一:linux下如何添加路由(百度面试题)以上是原题,老男孩老师翻译成如下3道题。a.如何用命令行方式给linux机器添加一个默认网关,假设网关地址为10.0.0.254?b.192.168.1.0网段,192.168.1.1网关的某一服务器想连入172.16.1.0/24段,该如何添加路由(奇虎360)c.如果添加一个主机路由?请分别解答。解答:route-net172.16.1.0…

    2022年7月18日
    34
  • 各种智能优化算法比较与实现(matlab版)

    各种智能优化算法比较与实现(matlab版)各种智能优化算法比较与实现(matlab版)一、方法介绍1免疫算法(ImmuneAlgorithm,IA)1.1算法基本思想免疫算法是受生物免疫系统的启发而推出的一种新型的智能搜索算法。它是一种确定性和随机性选择相结合并具有“勘探”与“开采”能力的启发式随机搜索算法。免疫算法将优化问题中待优化的问题对应免疫应答中的抗原,可行解对应抗体(B细胞),可行解质量对应免疫细胞与抗原的亲和度。如…

    2022年5月24日
    58
  • Linux查看开放端口_linux查看对外端口

    Linux查看开放端口_linux查看对外端口linux查看并对外开放端口(防火墙拦截处理) 查看端口是否可访问:telnetip端口号(如本机的35465:telnetlocalhost35465)开放的端口位于/etc/sysconfig/iptables中查看时通过more/etc/sysconfig/iptables命令查看如果想开放端口(如:8889)(1)通过v…

    2022年9月18日
    0

发表回复

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

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