♣ Tech & Biz Salon/Tech

(Ajax, Spring 기반) 동적 콤보박스

TasteGod 2012. 10. 5. 11:13

동적 콤보박스~
왠만한 개발자들 다 해본걸텐데 난 html 화면단 작업을 별로 안해봐서 이번에 첨 해본다^^


HTML

<!-- EVENT -->

<script type="text/javascript">

$(function(){

...........

$("select#srchInstKind").change(function(){

$.getJSON("<c:url value='/backend/cmCode/CmCode_GetList.json'/>",{srchCodeKind: 'AUTH_KIND', srchInstKind: $('#srchInstKind').val()}, function(j){

var options = '<option value="">--All--</option>';

for (var i = 0; i < j.length; i++) 

{

options += '<option value="' + j[i].code + '">' + j[i].codeNm + '</option>';

}

$("#srchAuthKind").html(options);

$('#srchAuthKind option:first').attr('selected', 'selected');

});

});

});

</script>

srchInstKind 콤보박스 onChange시에 srchAuthKind 콤보박스를 리로딩 한다.


Spring Controller

......

import org.codehaus.jackson.map.ObjectMapper;

......

@Controller

public class CmCodeController {

......

    @RequestMapping(value="/backend/cmCode/CmCode_GetList.json")

    public ResponseEntity<String> getListJson(HttpServletRequest request

    , HttpServletResponse response

    ,@RequestParam(value="srchCodeKind",required=false) String srchCodeKind

,@RequestParam(value="srchCodeUseYn",required=false) String srchCodeUseYn

,@RequestParam(value="srchInstKind",required=false) String srchInstKind

    ) throws Exception {

   

    CmCode cond = new CmCode();

   

    cond.setCodeKind(StringUtil.fixNull(srchCodeKind));

   

    if(StringUtil.fixNull(srchCodeUseYn) != "") 

    {

    cond.setCodeUseYn(srchCodeUseYn);

    }

    else

    {

    cond.setCodeUseYn("Y");

    }

   

    cond.setInstKind(StringUtil.fixNull(srchInstKind));

   

   

    List<CmCode> list = cmCodeService.selectListMainCol(cond);

   

    ObjectMapper om = new ObjectMapper();

   

    String jsonString = om.writeValueAsString(list);

   

//     logger.debug("jsonString:----------------------------\n" + jsonString + "\n-------------------------------");


        // Below 3 Lines Make Hangul Printing Correct!!          

        HttpHeaders responseHeaders = new HttpHeaders();

        responseHeaders.add("Content-Type", "text/html; charset=UTF-8");

        return new ResponseEntity<String>(jsonString, responseHeaders, HttpStatus.CREATED);

    }    

}


※ 참고 1


※ 기타 서핑하면서 본 정보들 (참고하지는 않음)

http://www.techiegyan.com/2008/07/26/jquery-handling-html-select/

이건 별로 라이브러리 이용해서 쓰는건데, 콤보박스 이래저래 핸들링 할 일 있을때 쓰면 괜찮을듯합니다.

난 지금 필요없으므로 패쑤