이번 포스팅은 웹화면에 플래시파일(.swf)을 띄우기 위한 샘플링을 구현하고자 한다.우선 사용할 파일은 swfobject.js 라는 것이다.사이트URL :https://code.google.com/p/swfobject/위화면으로 가서 swfobject 관련 zip파일을 다운로드 받도록 하자받았다면 압축해제후, swfobject.js파일과expressInst..
전에 xls 파일 생성후 다운로드 샘플을 포스팅하였다.2014/06/05 - [샘플소스/샘플소스(JAVA)] - poi 라이브러리를 이용하여 엑셀 파일을 만들어보도록 하자 - (xls 확장자)위 포스팅의 단점은 엑셀 2003 파일이라서 최대65,536 row라10만건 데이터 같은 경우는Exception이 발생한다.이런 문제를 해결하기 위해 xlsx 의 샘플..
json을 사용하는 대부분의 경우는서버에서 클라이언트로 json 또는배열객체를 전달할때 주로 사용함하지만 반대로웹 페이지에서 json 문자열을 만들어서 클라이언트에서 서버로 보낼 경우도 존재한다이 두가지 예제를 모두 들어보도록 하겠다.우선 라이브러리를 받도록 하자json-simple-1.1.1.jardb를 조회한 가상의 데이터를 arraylist에 담아주고..
첨부파일 확장자에 따라 이미지 파일일수도 있고, 문서파일일수도 있고 한다.파일확장자로 파일 이미지 종류를 구분해주고자 하는데이때 필요한 태그는 <c:forTokens>이다forTokens이란java에서 split을 주고 split을 준 배열을 for문돌리는 형태와 유사하다고 보면 된다.샘플소스이다.<c:set var="filename" va..
예를들어서 value값은 int 형으로 가격에 대한 값을 가지고 있는 price 가 존재한다. price가 2000이라는 값을 가지고 있지만, 화면에는 2,000 형식으로 표시를 해주고 싶다. 이럴경우 JSTL의formatNumber라는 놈을 써주면 되겠다!! JSTL의 포맷기능을 사용하기 위해서는 하단의 taglib를 페이지에 선언해줘야 한다. <..
이번 포스팅은 웹화면에 플래시파일(.swf)을 띄우기 위한 샘플링을 구현하고자 한다.
우선 사용할 파일은 swfobject.js 라는 것이다.
사이트URL : https://code.google.com/p/swfobject/
위화면으로 가서 swfobject 관련 zip파일을 다운로드 받도록 하자
받았다면 압축해제후, swfobject.js파일과 expressInstall.swf 파일을 본인의 프로젝트내에 복사 붙여넣기를 해보도록 하자
그리고 샘플링으로 필요한 swf파일이 있어야하니 우선 다운로드 받은 파일내에 존재하는 swf파일[test.swf]을 프로젝트내에 넣도록 하자
그리고 경로에 맞추어서 일부를 수정하였음.
물론, 다운로드 파일내에 존재하는 샘플을 코드만 그대로 가져다 놓은후, 경로를 본인의 환경에 맞추고 호출을 해본것임.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <!-- 스크립트 include --> <script type="text/javascript" src="/resources/swfobject.js"></script> <script type="text/javascript"> //<object> 태그 id를 첫번째 param으로 설정 swfobject.registerObject("swfId", "9.0.0", "/resources/expressInstall.swf"); </script> </head> <body> <div> <object id="swfId" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="300" height="120"> <!-- SWF 파일 경로를 value속성에 일치 --> <param name="movie" value="/resources/test.swf" /> <!--[if !IE]>--> <!-- SWF 파일 경로를 data속성에 일치 --> <object type="application/x-shockwave-flash" data="/resources/test.swf" width="300" height="120"> <!--<![endif]--> <div> <h1>Alternative content</h1> <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p> </div> <!--[if !IE]>--> </object> <!--<![endif]--> </object> </div> </body> </html>
본인이 변경한 부분은 /resources가 존재하는 값들만 변경을 해준것이다.
그럼 이제 실행을 해보도록 하자.
윈도우 버전을 호출하는 플래시파일인가 보다.
이걸로 swf파일 호출하는 샘플은 끝~
※ swfobject.registerObject("swfId", "9.0.0", "/resources/expressInstall.swf");
왜필요한지 모르겠다 없어도 플래시는 잘 호출 되는거 같은대... 뭐하는 함수인지..
API 찾아보고 추가 포스팅을 해야겠다..
도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!
jquery 체크박스 전체 선택/해제 샘플소스 (1) | 2014.06.10 |
---|---|
자바스크립트 replaceall 함수만들기 (0) | 2014.06.08 |
전에 xls 파일 생성후 다운로드 샘플을 포스팅하였다.
위 포스팅의 단점은 엑셀 2003 파일이라서 최대 65,536 row라
10만건 데이터 같은 경우는 Exception이 발생한다.
이런 문제를 해결하기 위해 xlsx 의 샘플링을 추가로 구현하였다.
xlsx의 최대쓰기가능 row는 1,048,576 row다.
하지만 과연 100만건의 데이터를 엑셀로 쓸 이유가 있을까?
그리고 과연 서버+DB가 버텨줄지~~
아무튼 이러한 이유로 xlsx 샘플도 구현을 하였다.
샘플 기준은 xls 샘플링에서 일부 변경으로 다운로드 구현을 하도록 하겠음.
//DB에서 조회한 데이터 LIST객체에 List객체의 제너릭은 Object타입 담는다. List<Object> excelList = service.getExcelList(entity); //getExcelList의 return type은 List타입의 제너릭은 SampleVO로 정함. //문자열 형식의 제목을 excelTtitle변수에 담는다(후에 split을 통해서 배열로 만들것임) String excelTitle = "배열제목1,배열제목2,배열제목3"; //다운받을 파일명 String downFileNm = "시트제목"; XSSFWorkbook wb = new XSSFWorkbook(); //시트 생성 XSSFSheet sheet = wb.createSheet(downFileNm); String titleArr[] = excelTitle.split(","); // 첫번째 행에 각각의 컬럼 제목작성 Cell cell = null; Row row = sheet.createRow(0); for(int titleNo=0; titleNo < titleArr.length; titleNo ++){ cell= row.createCell(titleNo); cell.setCellValue(titleArr[titleNo]); } int i=1; //DB에서 조회한 목록데이터를 담은 LIST객체를 OBJECT타입으로 돌린다 //VO종류가 무엇이든 상관없음? for(Object obj : list) { row = sheet.createRow(i); int j = 0; for (Field field : obj.getClass().getDeclaredFields()) { field.setAccessible(true); Object value = field.get(obj); if(value == null) { cell= row.createCell(j); cell.setCellValue(""); } else { cell= row.createCell(j); cell.setCellValue(String.valueOf(value)); } j++; } i++; } FileOutputStream fileOut = null; try { fileOut = new FileOutputStream("D:\\test.xls"); wb.write(fileOut); fileOut.close(); } catch (IOException e) { throw new RuntimeException("런타임에러가 발생하였습니다."); }
바뀐게 있다면 기존 HSSF -> XSSF 형식으로 앞에 H->X로 변경된점이랑
createRow((short)i) -> short형을 제하고 createRow(i) 로 변경
마지막으로 xls 파일명을 -> xlsx 로 변경이 되었다는 것이다!
10만건을 넣어본결과 파일이 잘 저장된다!
json-simple 라이브러리를 이용한 ObjecToString 과 StringToObject 코드구현 (2) | 2014.07.04 |
---|---|
자바 파일다운로드 - 멀티 브라우저지원 샘플코드 (0) | 2014.06.12 |
엑셀다운 POI 라이브러리 - 엑셀파일에서 내용 읽기 (0) | 2014.06.10 |
게시물 번호 구하기 샘플소스 (0) | 2014.06.09 |
자바 썸네일 이미지 생성 (0) | 2014.06.09 |
db를 조회한 가상의 데이터를 arraylist에 담아주고 해당 리스트로 json object를 만들어보자
서버에서 json object 파싱하여 웹페이지로 전달
ArrayList<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); JSONObject jsonObj = new JSONObject(); JSONObject jsonSubObj = null; JSONArray jsonArr = new JSONArray(); Map<String, Object> map = null; map = new HashMap<String, Object>(); map.put("data1","데이터1-1"); map.put("data2","데이터1-2"); list.add(map); map = new HashMap<String, Object>(); map.put("data1","데이터2-1"); map.put("data2","데이터2-2"); list.add(map); map = new HashMap<String, Object>(); map.put("data1","데이터3 -1"); map.put("data2","데이터3-2"); list.add(map); for(Map<String,Object> m : list) { Set<String> key = map.keySet(); for (Iterator<String> iterator = key.iterator(); iterator.hasNext();) { String k = (String) iterator.next(); String value = (String) map.get(k); jsonSubObj = new JSONObject(); jsonSubObj.put(k, value); } jsonArr.add(jsonSubObj); } jsonObj.put("list",jsonArr); PrintWriter pw = response.getWriter(); pw.print(jsonObj); pw.flush(); pw.close();
위와 같은 형식으로 데이터를 파싱해서 클라이언트로 json 객체를 던져준다면 다음 화면같이
값이 나올것이다.
만약 클라이언트쪽에서 ajax 호출하고 return type을 json으로 받았다면 object로 받을 수 있는
것이다.
문자열을 json object로 변환하는 작업을 해보도록 하겠다..
클라이언트에서 받은 json 문자열을 object로 변환하기
//서버에서 request.getparameter()로 받은 데이터라 가정 String jsonStr = "{\"obj1\":\"obj-1\",\"obj2\":\"obj-2\",\"obj3\":\"obj-3\"}"; if(jsonStr.substring(0,1).equals("{")) { Object obj=JSONValue.parse(jsonStr); JSONObject j=(JSONObject)obj; System.out.println("===========JSON OBJECT STRING -> OBJECT==========="); System.out.println(j.get("obj1")); System.out.println(j.get("obj2")); System.out.println(j.get("obj3")); } //서버에서 request.getparameter()로 받은 데이터라 가정 String jsonArrayStr = "[{\"data2\":\"데이터3-1\"},{\"data2\":\"데이터3-2\"},{\"data2\":\"데이터3-3\"}]"; if(jsonArrayStr.substring(0,1).equals("[")) { Object obj=JSONValue.parse(jsonArrayStr); JSONArray j=(JSONArray)obj; System.out.println("===========JSON ARRAY STRING -> FOR OBJECT==========="); for(int i=0; i<j.size(); i++) { JSONObject json = (JSONObject)j.get(i); System.out.println(json.get("data2")); } }
서버로 임의의 string형 json object / json array 값을 넘겼다 가정하였을때 json object/array
로 변경한 후 콘솔출력을 해보았다.
잘 뽑아진다 ㅎㅎ
POI 라이브러리를 이용하여 엑셀파일(XLSX) 만들기 - 6만건 이상일 경우 추천 (0) | 2014.07.14 |
---|---|
자바 파일다운로드 - 멀티 브라우저지원 샘플코드 (0) | 2014.06.12 |
엑셀다운 POI 라이브러리 - 엑셀파일에서 내용 읽기 (0) | 2014.06.10 |
게시물 번호 구하기 샘플소스 (0) | 2014.06.09 |
자바 썸네일 이미지 생성 (0) | 2014.06.09 |
첨부파일 확장자에 따라 이미지 파일일수도 있고, 문서파일일수도 있고 한다.
파일확장자로 파일 이미지 종류를 구분해주고자 하는데
이때 필요한 태그는 <c:forTokens>이다
forTokens이란
java에서 split을 주고 split을 준 배열을 for문돌리는 형태와 유사하다고 보면 된다.
샘플소스이다.
<c:set var="filename" value="koala.jpg" /> <c:set var="fileNm" value="${fn:toLowerCase(filename)}" /> <c:forTokens var="token" items="${fileNm }" delims="." varStatus="status"> <c:if test="${status.last }"> <c:choose> <c:when test="${token eq 'hwp' }"> <img src="한글파일이미지" alt="${filename }" /> </c:when> <c:when test="${token eq 'xls' || token eq 'xlsx' }"> <img src="엑셀파일이미지" alt="${filename }" /> </c:when> <c:when test="${token eq 'jpg' || token eq 'gif' || token eq 'png' || token eq 'bmp' }"> <img src="이미지파일이미지" alt="${filename }" /> </c:when> <c:when test="${token eq 'pdf'}"> <img src="pdf파일이미지" alt="${filename }" /> </c:when> <c:when test="${token eq 'ppt' }"> <img src="파워포인트파일이미지" alt="${filename}" /> </c:when> <c:otherwise> <img src="기본파일이미지" alt="${filename }" /> </c:otherwise> </c:choose> ${filename} </c:if> </c:forTokens>
위를 응용한다면 확장자 구분을하여 첨부파일에 대한 이미지를 뿌려줄 수
있을것이다!!
도움이 되셨다면 손가락↓ 클릭! 궁금하신점은 댓글!!
JSTL을 이용하여 세자리 단위로 콤마 찍기(fmt:formatNumber) (0) | 2014.06.18 |
---|---|
JSTL을 이용하여 문자열을 DATE형식으로 파싱하기(fmt:parseDate) (0) | 2014.06.18 |
JSTL - 지정수만큼 반복한후 줄 변경하기(ex : 포토갤러리) (2) | 2014.06.13 |
예를들어서 value값은 int 형으로 가격에 대한 값을 가지고 있는 price 가
존재한다.
price가 2000이라는 값을 가지고 있지만, 화면에는 2,000 형식으로 표시를 해주고 싶다.
이럴경우 JSTL의 formatNumber라는 놈을 써주면 되겠다!!
JSTL의 포맷기능을 사용하기 위해서는 하단의 taglib를 페이지에 선언해줘야
한다.
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%
//여기에 들어갈 java코드
%>
int price = 50000; request.setAttribute("price",price);
JSTL format 을 이용하여 세자리마다 콤마를 찍어줄수 있다.
파싱전 문자열값 : ${price } <br/> 파싱후 문자열값: <fmt:formatNumber value="${price }" pattern="#,###" />
JSTL formatNumber 사용전과 사용후의 차이점이다.
좋고만~
JSTL - 확장자명으로 구분하여 첨부파일 이미지 보이기 (2) | 2014.06.20 |
---|---|
JSTL을 이용하여 문자열을 DATE형식으로 파싱하기(fmt:parseDate) (0) | 2014.06.18 |
JSTL - 지정수만큼 반복한후 줄 변경하기(ex : 포토갤러리) (2) | 2014.06.13 |
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.