Web/전자정부프레임워크

전자정부 ajax 방식

벨포트조던 2016. 4. 11.
반응형

http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:ptl:ajax_support


기본적으로 위에 문서를 따라야 한다.


전자정부는 ajax 방식또한 조금 다르다. 


spring 방식으로는 라이브러리 따로받고 해보지는 않았지만.. 


jsp 방식으로는 안된다. 뭔가 충돌나나보다.





--------------------------------------- 컨트롤러 -----------------------------------------



    Map parameter = new HashMap();

    parameter.put("id_no", id_no);

    parameter.put("detail_id_no", detail_id_no);

    parameter.put("date_pick", date);

   

    IpsiInfoService.insertMiraeDate(parameter);

   

    ModelAndView mo = new ModelAndView(new AjaxXmlView());

   

    mo.addObject("test", "t");

    return  mo;


컨트롤러 단에서는 이렇게 선언해주고, 


new ajaxXmlView() 이 부분의 클래스를 문서처럼 설정해줬다.


문서에는 xml 파일을 만들어서 보내는데. 나는 익숙치 않아 json 모델로 바꿔줘서 전송했다.


public class AjaxXmlView extends AbstractView {

 

@Override

protected void renderMergedOutputModel(Map model,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

 

response.setContentType("application/json");

response.setHeader("Cache-Control", "no-cache");

response.setCharacterEncoding("UTF-8");

 

JSONObject outter = new JSONObject();

   outter.put("date_pick", model.get("date_pick"));

   

   

   PrintWriter pw = response.getWriter();

   pw.print(outter.toString());

   pw.close();

}

}


-------------------------------------------아이바티스------------------------------------------------


<!-- 입시자료 등록  -->

<insert id="IpsiInfoDAO.insertMiraeDate" parameterClass="java.util.HashMap" >

<![CDATA[

INSERT INTO MN_MIRAEDATE

(DATE_ID_NO, ID_NO, DETAIL_ID_NO, DATE_PICK)

VALUES

(

(select nvl(max(date_id_no),0)+1  from MN_MIRAEDATE), #id_no#,#detail_id_no#,#date_pick#

 

)

]]>

</insert>


vo 선언하기 싫어서 haspmap으로 받아왔다.


처음에는 String 배열을 이용해서 받아와서 뿌려주기 편했는데 , 컬럼이 하나 더 추가되서 hashmap으로 받아오니 


자바스크립트로 뿌려주는게 힘들었다.



$.ajax({      

       type:"POST",  

       url:"/ipsi/mng/selectMiraeDate.do",      

       dataType : "json",

       data:"pram1="+ pram1 +"&pram2="+ pram2,      

       success:function(args){

        date_pick = new Array();

 for(var i = 0 ; i < args.date_pick.length ; i ++ ){

//$('#date_div'+me ).append(' <span class="datebox">' + args.date_pick[i].DATE_PICK + 

 ' <a href="#" onclick="javascript:fn_delete_date('+ args.date_pick[i].DATE_ID_NO +',this)"><img src="/images/btn/bu5_close.gif" style="width: 16px;"></a></span> ');

        //alert(args.date_pick[i].DATE_ID_NO);

 date_pick.push(args.date_pick[i].DATE_PICK);

}            

           

       },   

       error:function(e){  

           alert(e.responseText);  

       }  


자바스크립트 단에서 뿌려주는것은 이런식이고, 대문자 소문자 구분을 해줘야한다. 






반응형

'Web > 전자정부프레임워크' 카테고리의 다른 글

전자정부 파일 업로드 사용법  (0) 2016.04.07

댓글