forTokens는 쉽게말해 "split"기능이라고 생각하시면 되겠습니다. "forTokens"태그는 JSTL의 c태그에 속합니다. 이 태그의 이해를 돕고자 파일확장자에 따른 이미지들을 보여주는 예를 들어보도록 하겠습니다. 조건은 다음과 같습니다. 확장자가 hwp일경우에는 한글파일이므로 한글이미지를보여주고 xls나 xlsx의 파일명일 경우에는 엑셀이미지..
문자열 내에 특정 반복되는 기호나 문자열을 일괄로 치환하고 싶을경우 replaceall이라는 기능을 사용합니다. 하지만,자바스크립트에는 replace함수는 제공되지만 replaceall이라는 함수가 별도로 존재하지 않습니다. 한번 replace 함수만을 사용하여 특정 문자열이 어떻게 치환되나 확인해보도록 하겠습니다.replace함수 호출코드var data=..
이번에 포스팅해 드릴 내용은 API방식에서 주로 사용하는 JSON오브젝트를 생성한 후 사용자페이지에서 받아보는 방법과 사용자 페이지에서 보낸 문자열로 만들어진 JSON을 OBJECT로 변환하는 코드를 구현해보도록 할까 합니다. 라이브러리는 JSON SIMPLE이라는 라이브러리를 이용하여 작업을 해보도록 하겠습니다. 라이브러리 다운로드는 https://c..
forTokens는 쉽게말해 "split" 기능이라고 생각하시면 되겠습니다.
"forTokens"태그는 JSTL의 c태그에 속합니다.
이 태그의 이해를 돕고자 파일확장자에 따른 이미지들을 보여주는 예를 들어보도록 하겠습니다.
조건은 다음과 같습니다.
확장자가 hwp일경우에는 한글파일이므로 한글이미지를보여주고
xls나 xlsx의 파일명일 경우에는 엑셀이미지를 보여주고
마지막으로 js파일일경우 자바스크립트이미지를 보여준다
위 조건으로 코드를 작성해보도록 하겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <!-- 임의의 파일명을 위하여 filename이라는 변수에 value set --> < c:set var = "originalfilename" value = "jquery.min.js" /> <!-- 확장자가 대문자일경우를 고려하여 소문자로 파일명 변경 --> < c:set var = "lowerfilename" value = "${fn:toLowerCase(originalfilename)}" /> <!-- 문자열들을 .으로 split 한후 c:forTokens을이용하여 문자열들을 iterator한다 --> < c:forTokens var = "ext" items = "${lowerfilename}" delims = "." varStatus = "status" > <!-- 파일명중간에 "." 이 존재할수도 있으니 항상 status.last(마지막번째) 를 실행해주어야 한다 --> < c:if test = "${status.last}" > < c:choose > < c:when test = "${ext eq 'xls' || ext eq 'xlsx'}" > <!-- 엑셀파일일경우 --> ${originalfilename}(엑셀파일이미지) </ c:when > < c:when test = "${ext eq 'hwp'}" > <!-- 한글파일일경우 --> ${originalfilename}(한글파일이미지) </ c:when > < c:when test = "${ext eq 'js'}" > <!-- 자바스크립트파일일경우 --> ${originalfilename}(자바스크립트파일이미지) </ c:when > </ c:choose > </ c:if > </ c:forTokens > |
코드의 originalfilename에 value값을
각각의 파일명을 변경하여서 테스트를 해보도록 하겠습니다.
테스트 결과 정상적으로 조건에 따른 파일 확장자 구분이 완료되었습니다.
fortoken에 대해서 이해가 가셨나요? ^^??
다음 포스팅에서 뵙도록 하겠습니다 (--)(__)
by 개발로짜
POI라이브러리를 이용하여 엑셀파일(xls,xlsx) 에 데이터 넣어서 파일로 만들기 (1) | 2014.10.07 |
---|---|
DTO,VO에 정의되어있는 변수명 및 갯수에 관계없이 변수명과 value값 한방에 가져오기 (0) | 2014.10.07 |
Map객체의 key값을 읽어서 value값 한번에 추출하기 (0) | 2014.10.07 |
JSON 라이브러리를 이용하여 object생성과 문자열을 object형으로 변환해보기 (0) | 2014.10.06 |
ImageIO를 이용하여 자바 썸네일 이미지 생성코드 구현하기 (1) | 2014.10.06 |
문자열 내에 특정 반복되는 기호나 문자열을 일괄로 치환하고 싶을경우
replaceall이라는 기능을 사용합니다.
하지만, 자바스크립트에는 replace함수는 제공되지만
replaceall이라는 함수가 별도로 존재하지 않습니다.
한번 replace 함수만을 사용하여 특정 문자열이 어떻게 치환되나
확인해보도록 하겠습니다.
1 2 3 | var data= "여기에 임시의 데이터가 존재합니다. 데이터란 내용을 data라고 변경을 해보도록 하겠습니다." alert( "replace사용 전:" +data); alert( "replace사용 후:" +data.replaceAll( "데이터" , "data" )); |
우선 replace 함수 실행전의 데이터 내용을 alert을 이용하여 출력해보았습니다.
"데이터"란 문자열을 "data"라고 변경하고자 합니다.
위결과 2개의 "데이터" 라는 문구가 존재하는데
replace함수를 사용한 결과 제일 먼저 나오는 데이터라는 문구만 "data"라고 변경이 되었습니다.
그렇다면 "데이터"란 단어를 모두 "data"로 변환하기위해 replaceAll함수를 하나 만들어 보겠습니다.
1 2 3 | function replaceAll(content,before,after){ return content.split(before).join(after); } |
위 함수를 이용하여 replace함수를 호출했던 내용의 문자열을 다시 한번 호출해보도록 하겠습니다
해당 부분은 상단 실행전이랑 메시지가 똑같죠?
두개의 "데이터"라는 단어가 모두 "data"라고 변경이 완료되었습니다 ^^ㅋ
유용하게 사용하시길 !!!
by 개발로짜
jquery를 이용하여 체크박스 전체 선택 및 해제하기 (2) | 2014.10.05 |
---|
이번에 포스팅해 드릴 내용은 API방식에서 주로 사용하는
JSON오브젝트를 생성한 후 사용자페이지에서 받아보는 방법과
사용자 페이지에서 보낸 문자열로 만들어진 JSON을 OBJECT로 변환하는 코드를
구현해보도록 할까 합니다.
라이브러리는 JSON SIMPLE이라는 라이브러리를 이용하여
작업을 해보도록 하겠습니다.
라이브러리 다운로드는
https://code.google.com/p/json-simple/downloads/list
상단 URL에 접속하여 받도록 하겠습니다.
오늘날짜 기준으로 확인결과 최신버전은 json-simple-1.1.1.jar 파일이네요 ㅎㅎㅎ
이클립스에서 Dynamic Web Project를 생성 후 lib 폴더에 다운받은 라이브러리를 include 해주겠습니다.
제가 세팅은 프로젝트 및 파일의 경로는 다음과 같습니다
코드작성을 위해 생성한 jsonobject.jsp라는 파일에 다음과 같이 코드를 작성하였습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | //최상단 json객체 JSONObject jsonroot= new JSONObject(); //가상의 list객체 (db에서 조회한 결과라고 가정) ArrayList<Map<String,Object>> selectlist= new ArrayList<Map<String,Object>>(); Map<String,Object> dbmap= null ; for ( int i= 0 ;i< 20 ;i++){ dbmap= new HashMap<String,Object>(); dbmap.put( "data" , "가상의DB데이터" +i); selectlist.add(dbmap); } //json 배열목록을 담아줄 jsonarray 객체생성 JSONArray jsonList= new JSONArray(); //가상DB목록을 JSON배열목록에 출력하기 위한 임의의 JSON오브젝트 JSONObject jsontmp= null ; //DB에서 조회한 값을 반복문을 이용하여 객체 하나씩 뽑아온다 for (Map<String,Object> selectone : selectlist){ Set<String> key=selectone.keySet(); //MAP의 KEY/VALUE를 통하여 JSON임시객체에 담아준후 for (Iterator<String> iterator=key.iterator();iterator.hasNext();){ String tmpekey=(String) iterator.next(); String tmpvalue=(String) selectone.get(tmpekey); jsontmp= new JSONObject(); jsontmp.put(tmpekey, tmpvalue); } //JSON배열목록에 추가 jsonList.add(jsontmp); } //db목록 json set jsonroot.put( "result" ,jsonList); //성공여부 jsonroot.put( "success" , true ); PrintWriter pw=response.getWriter(); pw.print(jsonroot); pw.flush(); pw.close(); |
관련 라이브러리 IMPORT는 생략하도록 하겠습니다!
그럼 한번 실행을 하여서 결과가 어떻게 나오는지 확인해 보도록 하겠습니다.
위와같이 json 형태로 정상적으로 만들어져서
출력되는 결과를 확인하였습니다.
다음으로는 클라이언트 페이지에서 넘어온 json문자열을 object타입으로
변환하는 작업을 해보도록 하겠습니다.
json 은 2가지 방법으로 만들어질수가 있습니다.
1.{key:value}의 object형식
2. [{key:value}]의 array형식
이두가지로 구분이 되겠는데
방법을 나누어서 코드를 작성해보도록 하겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | //사용자페이지에서 넘겨준 가상의 문자열 json data (request.getparameter을 이용하여 받았다고 가정합니다) String requestgetparameter= "{\"jsonstring1\":\"가상의문자열데이터1\",\"jsonstring2\":\"가상의문자열데이터2\"}" ; if (requestgetparameter.substring( 0 , 1 ).equals( "{" )){ //단순 object형식일 경우 JSONValue.parse를 이용해줍니다 Object jsonobject=JSONValue.parse(requestgetparameter); JSONObject jsonobj=(JSONObject)jsonobject; System.out.println( "[JSON 오브젝트파싱후 각각의 KEY로 VALUE값 출력]" ); System.out.println(jsonobj.get( "jsonstring1" )); System.out.println(jsonobj.get( "jsonstring2" )); } //서버에서 request.getparameter()로 받은 데이터라 가정 String requestgetparameter2= "[{\"jsonstring\":\"가상의문자열배열데이터1\"},{\"jsonstring\":\"가상의문자열배열데이터2\"}]" ; if (requestgetparameter2.substring( 0 , 1 ).equals( "[" )){ Object jsonarray=JSONValue.parse(requestgetparameter2); JSONArray jsonarr=(JSONArray)jsonarray; System.out.println( "[반복문을 돌려서 JSON 배열 파싱후 각각의 KEY로 VALUE값 출력]" ); for ( int i= 0 ;i<jsonarr.size();i++){ JSONObject jsonobj=(JSONObject)jsonarr.get(i); System.out.println(jsonobj.get( "jsonstring" )); } } |
JAVA 서버페이지에서 작업한다는 가정이므로
콘솔로 결과값들을 출력해보았습니다.
위 코드들을 응용하셔서 JSON 파싱에 필요하실때 사용하시면 되실거 같습니다 ^^
다음 포스팅때 뵙겠습니다!! ㅎㅎ
by 개발로짜
69123a15d0ab25684d6cabefbfc388a1
POI라이브러리를 이용하여 엑셀파일(xls,xlsx) 에 데이터 넣어서 파일로 만들기 (1) | 2014.10.07 |
---|---|
DTO,VO에 정의되어있는 변수명 및 갯수에 관계없이 변수명과 value값 한방에 가져오기 (0) | 2014.10.07 |
Map객체의 key값을 읽어서 value값 한번에 추출하기 (0) | 2014.10.07 |
JSTL의 c:forTokens을 이용하여 확장자명 찾기 (0) | 2014.10.06 |
ImageIO를 이용하여 자바 썸네일 이미지 생성코드 구현하기 (1) | 2014.10.06 |
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.