http://flexdocs.kr/ 의 3D 방명록을 기반으로 게시판을 작성해 봤다.
php로 되어있는 게시판 소스를 보고 jstl로 바꿔보면 어떨가 해서 시작했는데
귀차니즘의 압박으로 인해 웹으로 운영되고 있는 현재 게시판 기능 중
조회기능만을 AIR로 구현하는데 만족.
작업하면서 얻게된 몇가지 팁을 공유해 보자.
첫째. JSTL, CLOB
jstl로 clob데이터 처리가 되지 않는다-_-;;; 결국 꽁수를 써야 하는데,
나는 오라클디벨로퍼 페이지에 게시된 내용을 참고했다.
<c:set value="${rs.rows[0].content}" var="content" scope="request"/>
<%
oracle.sql.CLOB clob=(oracle.sql.CLOB)request.getAttribute("content");
StringBuffer clobString = new StringBuffer();
int y;
char ac[] = new char[4096];
java.io.Reader reader = clob.getCharacterStream();
while ((y = reader.read(ac, 0, 4096)) != -1) {
String buff = new String(ac,0,y);
clobString.append(buff);
}
request.setAttribute("content1", clobString.toString());
%>
1. clob을 request에 박아두고
2. jsp에서 clob코드를 이용하여 스트링생성
3. 생성된 스트링을 request에 새팅
4. el에서 request를 읽어옴
일련의 과정을 통해서 알게된 점은
1. 지저분 하지만 jstl과 jsp 간에 데이터 통신은 request객체를 사용한다.
2. html 데이터를 xml로 표현할때는 <!CDATA[]]>를 사용한다.
3. clob은 쓰기 어렵다 -_-
둘째, trace()를 적극 활용하자.
서버에서 던져준 xml을 클라이언트가 어떻게 처리하고 있는지 몰라서 상당히 애 먹었다.
변수에 trace 먹여서 디버그로 돌리면 그냥 죽죽 나오는데,
이걸몰라서 프로그래밍 상당히 곤란
xml 파싱을 trace를 통해 겨우 해결했다.
var xmlArticle:XMLList = e.result.articles.article;
view_idx.text = xmlArticle.@idx;
view_hname.text = xmlArticle.hname;
view_contents.htmlText = xmlArticle.contents;
var xmlComments:XMLList = xmlArticle.comments.comment;
acdp.removeAll();
for(i=0; i < xmlComments.length(); i++)
{
var xmlComment:XML = xmlComments[i];
//trace(xmlComment);
acdp.addItem({
comments : xmlComment.contents
});
}
xml, xmllist 객체 두개가 아직도 헷갈린다.
이해하려 노력하지 말고 그냥 맘편히 trace에서 나오는거 보고 적당히 처리하자-_-
세째, reference
jstl은 처음 써봤는데 역시 j2ee튜토리얼이 가장 큰 도움이 됐다.
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html
AIR도 처음인데 flex/air 한글화 문서를 참조했다.
http://flexdocs.kr/
NEXT.
spring, hibernate로 확장 -_-;;
![]() |