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 |
---|
댓글