100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > JSTL+EL表达式方法获取Oracle的Clob字段内容

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

时间:2023-08-28 12:05:44

相关推荐

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

我们在页面获得数据的时候一般的类型还是很好获得的,但是一遇到Clob类型就比较麻烦,最常用的方法是用一个流将其读取出来.使用MVC框架的时候这些都是无所谓的事情,因为反正是写在java类中怎么写都行,可是不使用MVC框架,使用jsp页面+JSTL的sql标签去读取数据库的数据这种方式就麻烦了,真的很麻烦,你不能在jsp上面嵌java代码吧?要是写java代码…脸上都无光啊….呵呵.我们这个新项目就是使用jsp+JSTL标签进行开发.可是有几个表的字段都是Clob类型的(因为要往里面存网页)存的时候使用的控件,可是取出来就取不出来了…结果我写了一个Tag(自定义标签),但是还是挺麻烦的(毕竟自定义标签不是干这个用的,他是干更高级任务的),最终我想到了EL表达式方法在我的一篇Blog中有介绍[自定义EL表达式方法[url]http://tonyaction./227462/42348[/url]]<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />代码其实很简单,主要是一种技术的应用.下面是代码:/** * * <pre> * 创建人: 王涛 * 创建于: -8-7 * 描述: * 根据得参数clob(CLOB类型)获得其中的内容,并以String方式返回 * </pre> * *@paramclob *@return*@throwsException */publicstaticString mClob(Object clob)throwsException {if(clob ==null) {return""; } StringBuffer clobString =newStringBuffer();if(clobinstanceofClob) {inty;charac[] =newchar[4096]; Reader reader = ((Clob) clob).getCharacterStream();while((y = reader.read(ac, 0, 4096)) != -1) {clobString.append(newString(ac, 0, y)); } }else{clobString.append(clob.toString()); }returnclobString.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>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。