보통 JSON/XML 파일 및 데이터를 읽는 작업이 자주있습니다.
예전에 샘플링으로 JSON 관련 포스팅을 다룬적이 있습니다.
2014/10/06 - [코드저장소/java] - JSON 라이브러리를 이용하여 object생성과 문자열을 object형으로 변환해보기
이번포스팅은 XML 파일 및 xml API 통신으로 받은 데이터를
읽어오는 샘플링을 진행해보도록 하겠습니다.
JDK 1.7로 진행을 합니다.
하위 버전에 해당 라이브러리가 존재하지 않을경우
xml-apis 관련 jar파일 및 maven dependency를 추가해주셔야 할것입니다.
이클립스에서 자바프로젝트 생성 후 src디렉토리에 test 패키지 생성 후
내부에 text.xml을 하나 생성한 다음 다음과 같은 샘플코드를 작성해보았습니다.
<?xml version="1.0" encoding="UTF-8"?> <root> <blog> <title><![CDATA[개발로짜]]></title> <link>http://hellogk.tistory.com</link> </blog> <blog> <title><![CDATA[국이]]></title> <link>http://guklife.tistory.com</link> </blog> </root>
이어서 test 패키지내부에 Test.java 클래스파일을 생성하여 다음과 같이 샘플코드를 작성해보았습니다.
public class Test { public static void main(String ar[]) { try { DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); Document xml = null; //XML DOCUMENT 획득 xml = documentBuilder.parse(ClassLoader.getSystemResource("test/test.xml").toURI().toString()); //Root엘리먼트 획득 Element element = xml.getDocumentElement(); //Root엘리먼트의 자식 노드목록 획득(blog xml 태그) NodeList list = element.getChildNodes(); //자식노드가 1개이상일경우 if(list.getLength() > 0) { //반복문 이용 for(int i=0; i<list.getLength(); i++) { //blog xml태그의 자식태그 한번 더 획득 NodeList childlist = list.item(i).getChildNodes(); //마찬가지로 자식노드 1개이상일경우 if(childlist.getLength() > 0) { for(int j=0; j<childlist.getLength(); j++) { //blog xml 태그내에 존재하는 태그들의 태그명 + 태그에 속하는 내용 출력 System.out.println("XML태그명:"+childlist.item(j).getNodeName()+",XML값:"+childlist.item(j).getTextContent()); } } } } } catch (Exception e) { e.printStackTrace(); } } }
코드 작성 후 실행을 해본결과 이클립스 콘솔에 하단과 같이 출력되었습니다.
XML태그명:#text,XML값: XML태그명:title,XML값:개발로짜 XML태그명:#text,XML값: XML태그명:link,XML값:http://hellogk.tistory.com XML태그명:#text,XML값: XML태그명:#text,XML값: XML태그명:title,XML값:국이 XML태그명:#text,XML값: XML태그명:link,XML값:http://guklife.tistory.com XML태그명:#text,XML값:
태그명에 존재하지도 않는 "#text" 태그가 출력되었습니다.
위 태그는 white-space(공백) 을 노드의 일부로 인식을 하여 출력하는데
이부분은 제외해야 하므로 조건문을 하나 더 추가하여 다시 한번 출력해보도록 하겠습니다.
기존 System.out.println 부분에 다음과 같은 조건을 추가적용 해주세요
if(Node.TEXT_NODE !=childlist.item(j).getNodeType()){ System.out.println(childlist.item(j).getNodeName()+":"+childlist.item(j).getTextContent()); }
title:개발로짜 link:http://hellogk.tistory.com title:국이 link:http://guklife.tistory.com
#text white-space 부분은 제외하고 출력이 되었습니다.
이어서 외부 url의 일명:API 통신을 이용하여 데이터를 출력해보도록 하겠습니다.
네이버블로그 RSS도 XML 규격으로 만들어져있으므로 RSS로 진행 해보도록 하겠습니다.
호출 RSS URL : http://blog.rss.naver.com/w3labs.xml (미래웹기술연구소 네이버 블로그 RSS 샘플)
브라우저로 RSS 규격을 확인해보도록 하겠습니다.
rss태그가 ROOT ELEMENT이고
자식첫번째 노드는 channel 태그인대 이태그는 한개만 존재하며
자식노드를 한번 더 들어가 item 태그에 존재하는
title / description 태그의 값들을 콘솔로 출력해보도록 하겠습니다.
public static void main(String ar[]) { try { DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); Document xml = null; //XML DOCUMENT 획득 xml = documentBuilder.parse("http://blog.rss.naver.com/w3labs.xml"); //Root엘리먼트 획득 Element element = xml.getDocumentElement(); //Root엘리먼트의 channel 자식태그는 1개이므로 item(0)으로 획득 Node channelNode = element.getElementsByTagName("channel").item(0); //channel태그내에 존재하는 자식태그 획득 NodeList list = channelNode.getChildNodes(); for(int i=0; i<list.getLength(); i++) { //image,link,title.. 여러개 태그 중 item 태그만 획득 if(list.item(i).getNodeName().equals("item")) { //item 태그의 자식노드 획득 NodeList list2 = list.item(i).getChildNodes(); for(int j=0;j<list2.getLength();j++) { //자식태그가 title/description일경우에만 태그명 + 값을 출력 if(list2.item(j).getNodeName().equals("title") || list2.item(j).getNodeName().equals("description")){ String content = list2.item(j).getTextContent(); //줄바꿈이 되어있으므로 \n replaceall content = content.replaceAll("\n", ""); System.out.println("========== 출력시작 ================="); System.out.println("name:"+list2.item(j).getNodeName()); System.out.println("value:"+content); System.out.println("========== 출력종료 ================="); } } } } } catch (Exception e) { e.printStackTrace(); } }
========== 출력시작 ================= name:title value:Sencha Ext JS Training ! 9월 부터는 Ext JS 5 강좌를 시작합니다.! ========== 출력종료 ================= ========== 출력시작 ================= name:description value:9월 ExtJS 5 Training 5일과정반응형 레이아웃, 접근성 지원, 플랫테마, 태블릿 지원, 센차 터치 차트 내장등 한층 업그레이드된 ExtJS 5 를 경험하세요!수강정보날짜 : 2014년 9월 15일(월) ~ 9월 19일(금) 10:00 ~ 18:00장소 :지하철 2호선 홍대입구역 5분거리 (서울시 마포구 서교동 352-31 희승빌딩 2층)비용 : 150만원 (부가세 별도)문의 : 미래웹기술연구소edu@miraeweb.com070-4259-2739Ext JS 5 런칭 기념! 수강생 전원에게 5만원권 백화점 상품권을 드립니다.주요내용OverviewSetup & SettingGetting StartDevuggingApplication StructureClass SystemComponent ClassLayouts & ContainerDom HandlingEventModel, Store and For....... ========== 출력종료 ================= ========== 출력시작 ================= name:title value:센차 아키텍트 3.1의 릴리즈를 발표하다 ========== 출력종료 ================= ========== 출력시작 ================= name:description value:센차 아키텍트 3.1의 릴리즈를 발표하다 2014년 8월 7일|애런 콘랜 센차와 아키텍트 팀 전체를 대표해 뿌듯한 마음으로 센차 아키텍트 3.1의 릴리즈를 발표합니다. 센차 아키텍트 3.1에는 여러 가지 새로운 기능이 생겼고, 그 중에서도 주목할 만한것은 Ext JS 5 지원입니다. Ext JS 5가 릴리즈되고얼마 되지 않았지만, 우리는 센차 아키텍트가 Ext JS 5의 새로운 기능을 동등하게 사용하도록 지원하기 시작했습니다. 센차 아키텍트 3.1 조기 액세스 프로그램(EAT: Early Access Program)에참여해주신 모든 분의 노고에 한분 한분 감사드리고 싶습니다. 센차 아키텍트의 Ext JS 5 지원 센차 아키텍트 3.1에....... ========== 출력종료 ================= ========== 출력시작 ================= name:title value:What's New in Ext JS 5.0.1 ========== 출력종료 ================= ========== 출력시작 ================= name:description value:Ext JS 5.0.1의 새로운 기능 2014년 8월 7일|돈 그리핀 오늘, 흥분되는 마음으로 Ext JS 5.0.1의 최종 안정화 버전을 발표합니다!이번 유지 관리 릴리즈에는 센차 커뮤니티의 피드백을 바탕으로 다수의 개선점이 포함되어 있습니다. 어떤 변화들이 있는지 살펴보겠습니다. 접근성 Ext JS 4.2.2부터는 “ext-aria” 패키지를 릴리즈해 접근성에 대한지원을 개선했습니다 (WAI-ARIA1.0표준에 설명된 것과 같이). 애플리케이션의 접근성을 높이는도구를 제공하는 데 중요한 단계이기도 했지만 테스팅 파트너와 얼리 어탭터의 피드백을 통해 배운 점도 많았습니다. Ext JS 5에서는 그 피드백들을 통합해 더 나은 솔....... ========== 출력종료 ================= ========== 출력시작 ================= name:title value:<센차 Ext JS 5>하나로 통합된 플랫폼에서 데스크톱과 모바일 애플리케이션 개발의 능률을 높인다. ========== 출력종료 ================= . . . .
위와같이 정상적으로 "제목 + 설명"에 대한 결과가 출력되었습니다 .
by 개발로짜
[JAVA 샘플] 트위터 앱생성 + twitter4j를 이용하여 타임라인(Timeline) 목록 출력하기 (3) | 2014.11.20 |
---|---|
JAVA opencsv를 이용하여 csv 파일생성하기 (2) | 2014.10.24 |
자바 zxing를 이용하여 QR코드 생성 + 색상코드(hex,rgb,안드로이드그래픽색상) 적용법 (2) | 2014.10.16 |
자바 다운로드 유틸을 만들어서 웹서버에 등록되있는 파일을 다운로드 하자 (5) | 2014.10.07 |
자바 POI를 이용한 엑셀(xls,xlsx)에 들어있는 데이터들 읽어오기 (8) | 2014.10.07 |
스프링 MVC + 스마트에디터 연동은 기존 JAVA/JSP 버전의 연동방식과 별차이가 없습니다.
물어보시는 분들이 종종 계셔서 포스팅 해보도록 하겠습니다.
STS 의 Spring Project 를 생성하여 기본 MVC 구조잡기/파일처리/리소스경로에 대한 설정이 필요합니다.
해당 설정은 하단 포스팅을 참고해주세요.
기존 본인이 적용하고 계신 연동법이 존재한다면
하단 포스팅을 참고하지 않으셔도 되겠습니다.
2014/11/06 - [개발에필요한연동법/스프링연동] - STS 이클립스를 이용하여 UTF-8 인코딩 설정 및 Spring3 MVC 연동해보기
2014/11/06 - [개발에필요한연동법/스프링연동] - Spring3 한글깨짐 방지를 위한 UTF-8 인코딩 설정하기
2014/11/07 - [개발에필요한연동법/스프링연동] - Spring3 파일전송을 위한 multipartResolver 설정하기
2014/11/07 - [개발에필요한연동법/스프링연동] - Spring3 RESTFUL 방식 리소스파일 및 favicon 인식할수 있게 설정하기
Spring MVC 설정이 완료되었다면
스마트 에디터를 개발자센터에 가서 다운로드 받도록 합니다.
다운로드 관련 포스팅은 하단을 참고해주세요
2014/10/29 - [코드저장소/스마트에디터연동] - 네이버 스마트에디터 기본연동법 및 서버에 입력값 전송하기
에디터관련 파일다운로드까지 완료가 되었다면
본인의 /루트디렉토리/resource/editor/ 디렉토리 생성후
해당 파일들을 모두 INCLUDE 해놓도록 합니다.
디렉토리 경로 중 "/resource/" 부분은 Spring MVC 리소스경로 설정시 지정한 디렉토리명으로 지정해줍니다.
위처럼 include 작업이 완료되었다면
html 페이지 혹은 jsp 페이지를 생성하여 다음 코드를 진행하도록 합니다.
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script> <script type="text/javascript" src="/resource/editor/js/HuskyEZCreator.js" charset="utf-8"></script>
<!-- action : 에디터에 입력한 html 코드를 전달받을 Controller페이지 URL --> <form action="/submit" method="post" id="frm"> <textarea name="editor" id="editor" rows="10" cols="100" style="width:766px; height:412px;"></textarea> <input type="button" id="savebutton" value="서버전송" /> </form>
$(function(){ //전역변수 var obj = []; //스마트에디터 프레임생성 nhn.husky.EZCreator.createInIFrame({ oAppRef: obj, elPlaceHolder: "editor", sSkinURI: "/resource/editor/SmartEditor2Skin.html", htParams : { // 툴바 사용 여부 (true:사용/ false:사용하지 않음) bUseToolbar : true, // 입력창 크기 조절바 사용 여부 (true:사용/ false:사용하지 않음) bUseVerticalResizer : true, // 모드 탭(Editor | HTML | TEXT) 사용 여부 (true:사용/ false:사용하지 않음) bUseModeChanger : true, } }); //전송버튼 $("#savebutton").click(function(){ //id가 smarteditor인 textarea에 에디터에서 대입 obj.getById["editor"].exec("UPDATE_CONTENTS_FIELD", []); //폼 submit $("#frm").submit(); }) })
@RequestMapping("/submit") public void submit(HttpServletRequest request){ System.out.println("에디터 컨텐츠값:"+request.getParameter("editor")); }
간단하게 실행 후 에디터에 테스트 내용 작성후
서버페이지에서 정상적으로 에디터 내용이 출력되는지 테스트를 해보도록 합니다.
위와같이 에디터가 출력되어 각각 입력 후 서버전송 버튼 클릭시
이클립스 콘솔창에 정상적으로 HTML 태그 + 컨텐츠 내용이 출력된 것을 확인하실수가 있습니다.
404 오류가 나는데 이부분은 무시하셔도 됩니다 ^^ㅋ
이어서 에디터 우측상단 사진버튼을 클릭하여
에디터내에 이미지 파일을 첨부해보도록 하겠습니다.
사진첨부기능은 싱글/멀티 파일업로드를 지원합니다.
단, IE9이하 버전에서는 싱글파일업로드만 지원하며
그외브라우저 및 IE10 이상부터는 드래그를 이용하여 다중파일업로드기능을 지원합니다.
form 태그가 존재합니다.
action="FileUploader.php" 의미가 없으므로 삭제해주시던가 "FileUploader.php" 값을 지워주도록 합니다.
479번째 줄의 callFileUploader () 함수(단일사진첨부함수)를 보면
sUrl : location.href.replace(/\/[^\/]*$/, '') + '/file_uploader.php', //샘플 URL입니다. sCallback : location.href.replace(/\/[^\/]*$/, '') + '/callback.html', //업로드 이후에 iframe이 redirect될 콜백페이지의 주소
위코드를 다음처럼 재정의 해주도록 합니다.
sUrl : '/photoUpload', //파일업로드시 동작되는 컨트롤러 url sCallback : '/resource/editor/photo_uploader/popup/callback.html', //업로드 이후 redirect 페이지 url
이어서 333번째 줄의 html5Upload() 함수(다중사진첨부함수)를 보시면
sUploadURL= 'file_uploader_html5.php'; //upload URL
위코드를 다음처럼 변경해주도록 합니다
sUploadURL= '/multiplePhotoUpload'; //다중파일업로드 URL
클라이언트 설정변경을 위와같이 모두 해주셨다면
이어서 서버페이지 코드작성을 해보도록 하겠습니다.
public class PhotoVo { //photo_uploader.html페이지의 form태그내에 존재하는 file 태그의 name명과 일치시켜줌 private MultipartFile Filedata; //callback URL private String callback; //콜백함수?? private String callback_func; public MultipartFile getFiledata() { return Filedata; } public void setFiledata(MultipartFile filedata) { Filedata = filedata; } public String getCallback() { return callback; } public void setCallback(String callback) { this.callback = callback; } public String getCallback_func() { return callback_func; } public void setCallback_func(String callback_func) { this.callback_func = callback_func; } }
//단일파일업로드 @RequestMapping("/photoUpload") public String photoUpload(HttpServletRequest request, PhotoVo vo){ String callback = vo.getCallback(); String callback_func = vo.getCallback_func(); String file_result = ""; try { if(vo.getFiledata() != null && vo.getFiledata().getOriginalFilename() != null && !vo.getFiledata().getOriginalFilename().equals("")){ //파일이 존재하면 String original_name = vo.getFiledata().getOriginalFilename(); String ext = original_name.substring(original_name.lastIndexOf(".")+1); //파일 기본경로 String defaultPath = request.getSession().getServletContext().getRealPath("/"); //파일 기본경로 _ 상세경로 String path = defaultPath + "resource" + File.separator + "photo_upload" + File.separator; File file = new File(path); System.out.println("path:"+path); //디렉토리 존재하지 않을경우 디렉토리 생성 if(!file.exists()) { file.mkdirs(); } //서버에 업로드 할 파일명(한글문제로 인해 원본파일은 올리지 않는것이 좋음) String realname = UUID.randomUUID().toString() + "." + ext; ///////////////// 서버에 파일쓰기 ///////////////// vo.getFiledata().transferTo(new File(path+realname)); file_result += "&bNewLine=true&sFileName="+original_name+"&sFileURL=/resource/photo_upload/"+realname; } else { file_result += "&errstr=error"; } } catch (Exception e) { e.printStackTrace(); } return "redirect:" + callback + "?callback_func="+callback_func+file_result; }
IE를 실행하여 단일업로드를 확인해보도록 하겠습니다.
※ 만약 IE10 이상이며 다중파일업로드 화면이 출력이 된다 하시면
attach_photo.js 파일의 38번째줄을 보시면 checkDragAndDropAPI() 함수내에 존재하는
bSupportDragAndDropAPI = true;
위처럼 true부분을 하단처럼 false로 변경해주도록 합니다.
bSupportDragAndDropAPI = false;
단일 사진첨부기능은 구현이 완료되었습니다.
이어서 HTML5 드래그앤드롭 기능을 이용한 스마트에디터 파일업로드 관련 컨트롤러를 작성해보도록 하겠습니다.
//다중파일업로드 @RequestMapping("/multiplePhotoUpload") public void multiplePhotoUpload(HttpServletRequest request, HttpServletResponse response){ try { //파일정보 String sFileInfo = ""; //파일명을 받는다 - 일반 원본파일명 String filename = request.getHeader("file-name"); //파일 확장자 String filename_ext = filename.substring(filename.lastIndexOf(".")+1); //확장자를소문자로 변경 filename_ext = filename_ext.toLowerCase(); //파일 기본경로 String dftFilePath = request.getSession().getServletContext().getRealPath("/"); //파일 기본경로 _ 상세경로 String filePath = dftFilePath + "resource" + File.separator + "photo_upload" + File.separator; File file = new File(filePath); if(!file.exists()) { file.mkdirs(); } String realFileNm = ""; SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss"); String today= formatter.format(new java.util.Date()); realFileNm = today+UUID.randomUUID().toString() + filename.substring(filename.lastIndexOf(".")); String rlFileNm = filePath + realFileNm; ///////////////// 서버에 파일쓰기 ///////////////// InputStream is = request.getInputStream(); OutputStream os=new FileOutputStream(rlFileNm); int numRead; byte b[] = new byte[Integer.parseInt(request.getHeader("file-size"))]; while((numRead = is.read(b,0,b.length)) != -1){ os.write(b,0,numRead); } if(is != null) { is.close(); } os.flush(); os.close(); ///////////////// 서버에 파일쓰기 ///////////////// // 정보 출력 sFileInfo += "&bNewLine=true"; // img 태그의 title 속성을 원본파일명으로 적용시켜주기 위함 sFileInfo += "&sFileName="+ filename;; sFileInfo += "&sFileURL="+"/resource/photo_upload/"+realFileNm; PrintWriter print = response.getWriter(); print.print(sFileInfo); print.flush(); print.close(); } catch (Exception e) { e.printStackTrace(); } }
HTML5 다중파일업로드에 대한 실행을 해보도록 하겠습니다.
IE10이상 혹은 크롬/사파리등 기타 브라우저에서 실행을 해주세요
위와같이 드래그앤드롭기능을 이용한 다중사진업로드 기능구현이 완료되었습니다.
by 개발로짜
네이버 스마트에디터 사진첨부기능을 이용하여 에디터에 이미지 추가하기+다중파일업로드 포함 (97) | 2014.10.29 |
---|---|
네이버 스마트에디터 기본연동법 및 서버에 입력값 전송하기 (8) | 2014.10.29 |
자바라이브러리의 twitter4j를 이용하여 타임라인 목록을 출력해보도록 하겠습니다.
다운로드는 2가지 방법이 존재합니다.
http://twitter4j.org/en/index.html
위 사이트를 가셔서 twitter4j-x.x.x.zip파일을 다운로드 받으십니다.
받으신 다음 압축해제를 하신 후 lib 디렉토리에 존재하는
twitter4j-core-x.x.x.jar 파일을 본인의 lib 디렉토리내에 include 해주도록 합니다.
<dependency> <groupId>org.twitter4j</groupId> <artifactId>twitter4j-core</artifactId> <version>4.0.2</version> </dependency>
위처럼 twitter4j 관련 dependency를 pom.xml 에 추가해주도록 합니다.
이어서 consumer key, consumer secret, accesstoken 등을 받기 위하여
앱을 하나 생성해보도록 하겠습니다.
1. 트위터에 접속하여 앱생성하고자 하는 아이디로 로그인을 합니다.
"URL 접속 후 Create New App" 버튼 클릭을 합니다.
3. 하단 네모친 박스에 필수값들을 입력합니다.
1) Name : 앱의 이름을 작성
2) Description : 앱에 대한 설명인대 최소 10자이상 작성해주세요
3) Website : 실제 동작될 도메인을 작성해주시면 되는데
저는 로컬도메인을 사용하고자 하는데 "http://localhost:포트번호" 로는 접속이 안되는거 같습니다.
그래서 "http://127.0.0.1:포트번호" 로 작성하였습니다.
4) Callback URL : 타임라인 글쓰기와 같은 POST 기능을 사용할때 필요한거 같긴한대...
그냥 단순히 타임목록을 가져오고자 하므로 생략하도록 하겠습니다.
4. 약관동의
3번에 대한 작성이 완료된 후 스크롤을 하단으로 내리면
약관동의 하는 부분이 있는데 체크 해주신 다음
"Create your Twitter application" 버튼을 클릭합니다.
5. 기본앱 생성완료
위와같이 앱이 생성되었습니다.
이어서 access token 값을 생성해야 하므로
Keys and Access Tokens 탭을 클릭하여 액세스토큰을 만들도록 합니다.
6. Access Token 생성하기
이동하신 탭에서 하단에 Toekn Actions 영역을 보시면 "Create my access token" 버튼을 클릭합니다.
7. Access Token 생성완료
그럼 위처럼 Toekn Actions는 사라지고
Access Token / Access Token Secret 값이 생성된것을 확인 할 수 있겠습니다.
그럼 샘플코드를 적용하기 위하여 간단한 예를 들어보도록 하겠습니다.
JAVA프로젝트 생성후 다운로드 받은 JAR파일을 해당 프로젝트에 INCLUDE 한 후
Java Build Path -> Libraries -> Add Jars 로 JAR파일 INCLUDE해주었습니다.
※ 웹프로젝트는 lib 디렉토리 혹은 pom.xml에 dependency를 등록하셨다면 별도로 include 해주실 필요는 없습니다.
public static void main(String ar[]) { try { AccessToken accesstoken = new AccessToken("Access Token", "Access Token Secret"); Twitter twitter = TwitterFactory.getSingleton(); twitter.setOAuthConsumer("Consumer Key (API Key)", "Consumer Secret (API Secret)"); twitter.setOAuthAccessToken(accesstoken); User user = twitter.verifyCredentials(); List<Status> list = twitter.getUserTimeline(); System.out.println("타임라인 계정:"+user.getScreenName()); for(Status status : list) { System.out.println("작성자:"+status.getUser().getScreenName()); System.out.println("타임라인내용:"+status.getText()); } } catch (Exception e) { e.printStackTrace(); } }
AccessToken 객체생성할때 필요 parameter와
setOAuthConsumer 필요 parameter들은
access token 생성한 "Keys and Access Tokens" 탭내에 모두 존재하므로
각각의 값들을 대입해주도록 합니다.
정상적으로 트위터 API 를 이용하여 타임라인의 목록이 출력되었습니다.
DEFAULT 20개의 타임라인 글밖에 나오지 않습니다.
더보기 및 한페이지에 글목록 수를 조절하고자 하신다면
twitter4j의 "Paging" 객체를 호출 후 기존 코드인 getUserTimeline() 메서드의
parameter로 넘겨주시면 되겠습니다.
페이징을 처리하고 싶으시다면
하단코드를 기존코드에 일부 적용해주시면 되겠습니다.
//Paging(페이지번호,한페이지당출력글갯수) Paging page = new Paging (1, 50); List<Status> list = twitter.getUserTimeline(page);
by 개발로짜
JAVA 샘플 - org.w3c.dom을 이용한 XML파일 및 RSS API 파싱하여 데이터 읽어보기 (0) | 2014.11.25 |
---|---|
JAVA opencsv를 이용하여 csv 파일생성하기 (2) | 2014.10.24 |
자바 zxing를 이용하여 QR코드 생성 + 색상코드(hex,rgb,안드로이드그래픽색상) 적용법 (2) | 2014.10.16 |
자바 다운로드 유틸을 만들어서 웹서버에 등록되있는 파일을 다운로드 하자 (5) | 2014.10.07 |
자바 POI를 이용한 엑셀(xls,xlsx)에 들어있는 데이터들 읽어오기 (8) | 2014.10.07 |