JSTL+EL 표현 식 방법 으로 Oracle 의 Clob 필드 내용 가 져 오기

우 리 는 페이지 에서 데 이 터 를 얻 을 때 일반적인 형식 은 얻 기 쉽 지만 Clob 형식 을 만나면 번 거 롭 습 니 다.가장 자주 사용 하 는 방법 은 하나의 흐름 으로 읽 는 것 입 니 다.MVC 프레임 워 크 를 사용 할 때 이런 것들 은 모두 상 관 없 는 일 입 니 다.어차피 자바 류 에 써 도 되 지만 MVC 프레임 워 크 를 사용 하지 않 기 때 문 입 니 다.jsp 페이지+JSTL 의 sql 라벨 을 사용 하여 데이터 베 이 스 를 읽 는 방식 은 번 거 롭 습 니 다.정말 번 거 롭 습 니 다.jsp 에 자바 코드 를 삽입 하면 안 되 죠?자바 코드 쓰 면

얼굴 에 빛 이 없 네.

.
하하.우리 의 이 새로운 프로젝트 는 jsp+JSTL 라벨 을 사용 하여 개발 하 는 것 입 니 다.그러나 몇 개의 표 의 필드 는 모두 Clob 형식(웹 페이지 를 안쪽 으로 저장 해 야 하기 때 문)으로 저장 할 때 사용 하 는 컨트롤 이지 만 꺼 내 면 꺼 낼 수 없습니다.

결국 나 는 태그(사용자 정의 태그)를 썼 지만 매우 번 거 로 웠 다.
사용자 정의 EL 표현 식 방법
[url]http://tonyaction.blog.51cto.com/227462/42348[/url]
]
코드 는 사실 매우 간단 하 다.주로 기술 의 응용 이다.다음은 코드 이다.
/**
     
*
     
*
     
*
창설 자
:
왕 도
     
*
창설
:
2007
-
8
-
7
     
*
묘사 하 다.
 
서술 하 다.
:
     
*
   
근거 매개 변수
clob(CLOB
유형
)
그 내용 을 얻다
,
아울러
String
방식 반환
     
*
     
*
     
*
@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>

좋은 웹페이지 즐겨찾기