Category Archives: Lang

프로그래밍 언어

javascript 정규식 치환 (replace()) 함수의 두 번째 인수로 function을 넣어서 escapeHtml() 함수 작성하는 예제

By | 10월 23, 2014

– 출처: http://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery –   javascript replace() 함수의 두 번째 인수로 함수를 넣을 수 있다는 것을 처음 알았다. ^ㅁ^;   var entityMap = { “&”: “&amp;”, “<“: “&lt;”, “>”: “&gt;”, ‘”‘: ‘&quot;’, “‘”: ”’, “/”: ‘/’ }; function escapeHtml(string) { return String(string).replace(/[&<>”‘\/]/g, function (s) { return entityMap[s]; }); }      

jQuery Deffered 에 관한 개념 정리

By | 10월 21, 2014

      * Promise 객체 – Promise 객체는 $o.promise()로 생성하거나 $.when()의 인수로 넣어질 경우 생성된다. – Promise 객체가 되면 객체에서 일어나는 일들을 모니터링하여, 이벤트가 종료되면 done()을 호출한다. (ex: fadeOut())                                                  

정적 자원 (js, css) 들을 브라우저에서 캐싱(cache) 하지 못하도록 처리하기.

By | 9월 11, 2014

  방법 1) 정적 자원 로딩(import) url 뒤에 버전을 나타내는 구분자 붙이기.   * 브라우저가 1분 이상 정적 자원들을 캐싱하지 못하도록 막고 싶을 경우, 공통 heaer jsp 파일 소스코드 예시 <% request.setAttribute(“buildVer”, DateUtil.getCurrentDate(“yyyyMMddHHmm”)); //현재일시의 DateFormat을 리턴해 주는 사용자정의 메서드 getCurrentDate()가 있다고 치자. %> <script src=”${contextPath}/js/common.js?${buildVer}”></script>           나머지 방법들은 기회가 되면…  … Read More »

java 정규식(regex)을 사용하여 2회 이상 반복되는 정규식 패턴의 문자열을 각각 치환(replace)하는 예제

By | 5월 11, 2021

하려고 하는 작업 특정 문자열에서 메타문자 {WRAP}{/WRAP}로 감싸진 숫자를 찾아서 마스킹 처리를 하고 {WRAP}{/WRAP} 메타문자는 삭제하고 싶다. String dtl = "블라블라 {WRAP}123456{/WRAP} 어쩌구 저쩌구 {WRAP}987654{/WRAP} 마무으리 등등등…"; Matcher matcher = Pattern.compile("\\{WRAP\\}(\\d*)\\{/WRAP\\}"); // grouping을 하나 한 것에 주목 StringBuffer sb = new StringBuffer(); while(matcher.find()){ // 계속해서 결과를 찾아간다. //문자열 맨 앞에서부터 sb에 붙여나가면서 치환 처리까지 수행한다.… Read More »

java에서 원치 않는(의도하지 않은) null 문자열 (null string) 이 나올 경우 체크해 볼 사항

By | 8월 21, 2014

  1. StringBuffer, StringBuilder 클래스의 append() 메서드 사용 append() 메서드의 인수로 null 이 들어가면 “null” 문자열이 append() 된다.     2. String 클래스의 valueOf() 메서드 사용 valueOf() 메서드의 인수로 null 이 들어가면 “null” 문자열을 리턴한다.          

jQuery에서 엘리먼트에 바인딩된 이벤트 조회하기

By | 8월 8, 2014

    //이벤트 조회(추출) var events = $._data($(‘#div1’)[0], ‘events’);   //바인딩된 이벤트 해제하기 $(‘#div1’).unbind(‘click’); //click 이벤트 해제     * 참고 jQuery를 사용하여 이벤트를 조회하는 것이나, 아니면 이벤트를 해제하는 것이나, 모두 jQuery를 통하여 바인딩된 이벤트만 조회/해제할 수가 있다. html 코드에 직접 등록한 이벤트의 경우에는 조회도 해제도 불가한 것으로 보인다. 그렇기 때문에 이벤트를 바인딩할 때는 나중을… Read More »

jqGrid의 페이징 기능 사용시, jqGrid의 기본 페이징 파라미터명과 서버의 페이징 파라미터 명이 다를 경우, 서버쪽 페이징 파라미터명을 jqGrid가 맞춰줄 수 있도록 하는 설정

By | 8월 8, 2014

  var P_PAGE = ‘pageNo’; //페이지번호 파라미터명 var P_TOTALCNT = ‘totRows’; //전체 조회 건수 파라미터명 var P_ROWSPERPAGE = ‘fetchRows’; //rowsPerPage 파라미터명 var P_TOTALPAGE = ‘totalPage’;     //jqGrid 기본 설정 $.extend($.jgrid.defaults, {   prmNames: { page: P_PAGE, rows: P_ROWSPERPAGE, totalrows: P_TOTALCNT },   jsonReader: { root: ‘data’,  //응답객체 이름 page: P_PAGE, total: P_TOTALPAGE, records: P_TOTALCNT,… Read More »

jQuery UI dialog 를 닫을 때, cannot call methods on dialog prior to initialization; attempted to call method 'close 에러가 발생하는 경우

By | 7월 8, 2014

이 케이스에 대해서 인터넷에 여러가지 말들이 많이 있지만, 내 경우에는,  이미 기존 페이지에 include 되어 있던 javascript 라이브러리 들이, Dialog를 띄우면서 또 한 번 같은 document 내에 로딩되면서, Dialog를 생성했던 javascript context가 사라져 버린 경우였었다.   결국 dialog 내에 로딩되는 페이지에서 javascript 라이브러리가 include 되는 부분을 모두 제거했더니, Dialog도 잘 닫히고, 아무 문제가 없었다.  … Read More »

java에서 전문을 보낼 때, 바이트배열(byte array)을 생성하는 우아한 방법

By | 5월 9, 2014

  *  Arrays.copyOfRange()와 ByteArrayOutputStream.write(), ByteArrayOutputStream.toByteArray()를 사용하여, 심플하고 우아하게 바이트배열을 생성할 수 있다.     /** * 객체의 모든 내용을 바이트배열로 만들어 리턴한다. * @return */ public byte[] getBytes(){ byte[] ret = null; ByteArrayOutputStream stream = new ByteArrayOutputStream(BYTES_BODY); //BYTES_BODY는 메세지의 전체 길이(bytes)이다. try { stream.write(Arrays.copyOfRange(gameId.getBytes(), 0, BYTES_GAME_ID)); //BYTE_’속성명’은 각 속성별 지정 길이(bytes)이다. stream.write(Arrays.copyOfRange(isolStaDtm.getBytes(), 0, BYTES_ISOL_STA_DTM)); stream.write(Arrays.copyOfRange(isolEndDtm.getBytes(),… Read More »

[책펌] 센차터치(Sencha Touch)에서 간단한 박스 레이아웃 구성하는 예제

By | 3월 6, 2014

  – 출처: 센차터치2+폰갭 프로그래밍 –   * 코드 Ext.application({ requires: [‘Ext.Panel’], launch: function(){ var panel = new Ext.create(‘Ext.Panel’, { fullscreen: true, layout: { type: ‘vbox’, //세로로 배열하는 레이아웃 align: ‘stretch’ //꽉 차게 늘여서 맞춘다 }, items: [ { flex: 1, //flex 값은, 같은 위상의 컴포넌트들끼리 화면을 점유하는 상대적인 비율을 의미하는 값이다. style: ‘background-color:red; font-size:… Read More »