페이징이 되어있는 게시판에서 1페이지에서 체크했던 값들이 2페이지에 갔다가 다시 1페이지로 돌아와도 체크된 상태로 남아있도록 하는 로직을 고객이 아닌 PM이 요구하여 만들게 됐다. 체크박스 체크 상태가 유지되는 게시판을 여태 본 적도 없고, 이용하는 사람 입장에서도 왜 그렇게 해야 하는지는 모르겠으나.. 만들라고 하니까 만들었다. 처음엔 체크할 때마다 ajax처리해서 session으로 들고다닐까 하다가, 겨우 체크박스 하나 때문에 불필요한 서버-클라이언트 통신이 발생하는 것도 아닐 뿐더러 띄엄띄엄 하는 체크에 많은 양의 체크를 할 것 같지도 않아서 그냥 쿠키로 해결하기로 했다. 좀더 정리가 필요한 소스이긴 하지만, 더이상은 귀찮다. ㅡ.ㅡ;; Javascript단 var cookieName = "item..
간단하게 짤 수 있는 코드지만, 항상 필요할 때마다 타이핑하자니 귀찮아서 여기에 저장해놔야겠다. function setPeriod(period){ var startDate = getPastDate(period); var endDate = getRecentDate(); $("#startDate").val(startDate); $("#endDate").val(endDate); } function getRecentDate(){ var dt = new Date(); var recentYear = dt.getFullYear(); var recentMonth = dt.getMonth() + 1; var recentDay = dt.getDate(); if(recentMonth < 10) recentMonth = "0..
간만에 간단한 것 하나 올려본다. 입력 화면에서 input 태그나 readonly인 태그를 제외한 타겟에서 백스페이스 키가 눌려서 이전 페이지로 이동하는 것을 막는 코드다. $(function() { $(document).keydown(function(e) { if(e.target.nodeName != "INPUT"){ if(e.keyCode == 8){ return false; } } if(e.target.readOnly){ // readonly일 경우 true if(e.keyCode == 8){ return false; } } }); });
웹프로젝트를 만들 때 보통 url-pattern을 "*.do"로 많이한다. "점 뒤에 특정 문자가 오면 서블릿을 타라"라는 뜻이기 때문에 반드시 *.do로 해야 하는 건 아니지만(*.aa *.bb 아무거나 상관없음), 네이버가 먼저 *.do를 사용하면서 *.do가 보편화 됐다고 한다. 그래서 보통 아무 생각없이 이 방법을 많이 사용한다. 하지만 url패턴을 좀더 간결하게 하고 싶고 추후 RestFul API를 제공하는 것도 염두에 두고 있다면 url패턴을 간결하게 가져갈 필요가 있다. 예를 들어 *.do로 하면 "http://www.cha.go.kr/cha/idx/Index.do"이렇게 요청해야 하지만, url패턴을 간결하게 하면 .do를 빼고 "http://www.cha.go.kr/cha/idx/Ind..
mybatis xml 쿼리에서 List, HashMap자료형을 foreach로 출력할 경우의 예제들이다. 결과내 검색 기능을 구현할 때 유용하다. 2번은 구글링으로 찾아도 안나와서 때려맞췄더니 되더라.. 1. List keywordList = new ArrayList(); (LIKE 쿼리는 mssql 기준) title LIKE '%'+#{title }+'%' 2. HashMap keywordMap = new HashMap(); keywordMap.put("title", keywordList); keywordMap.put("author", keywordList); (LIKE 쿼리는 oracle 기준) title LIKE '%' || #{keyword} || '%' author LIKE '%' || #{ke..
쿠키는 javascript로도 다룰 수 있지만, 자바스크립트로는 간단하게만 구현할 수 있어서 쿠키로 좀더 뭔가를 하기 위해선 자바를 사용할 수밖에 없다. 아래의 예들을 구현하기 위해 사용한 자바 소스를 공유한다. 오늘 본 상품을 조회할 때 - 구현 예 1. 쿠키 name은 "clickItems", value는 "300, 234, 154" 이런 식이 될 것이다. 상품을 클릭할 때마다 value에 ","를 붙이고 값이 늘어나는 식이다. 2. 화면상에서 쿠키값을 하나씩 forEach로 돌려서 링크를 걸어준다. 서버에 저장된 상품 이미지 파일명이 상품 번호면 쉽게 상품 이미지를 표출할 수 있을 것이다. 이걸 구현할 때 사용하는 메서드들이 아래의 CookieUtils클래스의 getValueList와 setCook..
스프링에서 제공하는 ReloadableResourceBundleMessageSource를 이용해서 공통 메시지를 처리해보도록 한다. 찾아보니까 깔끔하게 정리된 게 없어서 내가 정리한다 ㅡ.ㅡ 1. ReloadableResourceBundleMessageSource를 사용하기 위한 설정 context-message.xml classpath:/egovframework/message/message message 폴더 안에 message_en_US.properties, message_ok_KR.properties 두 개의 파일이 있다면, 접속하는 세션의 로케일에 따라 자동으로 로딩한다. message_ok_KR.properties errors.minlength={0} 은 {1}자 이상 입력해야 합니다. fail..