경제학도의 개발공간
[20180510]Spring 비동기처리 본문
반응형
다음을 참고하고 시작하자
http://www.nextree.co.kr/p11205/
http://cafe.naver.com/bitcamp104/1471
비동기 처리를 위한 디펜던시 라이브러리는 다음과 같다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.3</version> </dependency> | cs |
@RequestBody로 비동기 처리하는 방식
dispatcher-servlet설정
1 2 3 4 5 6 7 | <beans xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation= "http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <mvc:annotation-driven /> | cs |
<mvc:annotation-driven />
이 하는 역할??
우리가 뿌려주는 데이터가 JSON일 경우 반드시 필요한 코드
참고 : https://blog.naver.com/skout90/220971378833
1 2 3 4 5 6 7 | @RequestMapping(value="response2.kosta",method=RequestMethod.POST) public @ResponseBody Employee add(@RequestBody Employee emp) //@RequestBody넘어오는 json데이터를 객체형태로 바로 받아온다 . { System.out.println("response"); System.out.println(emp.toString()); return emp; } | cs |
@RequestBody는 넘어오는 json데이터를 객체형태로 바로 받아온다
@ResponseBody 를 사용할 경우 return되는 객체를 JSON형태로 변환하여 ajax의 데이터로 뿌려준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | $(document).ready(function(){ $('#btnCheckUid').click(function() { if($('#userid').val()==""){ alert("아이디를 입력해 주세요") }else{ $.ajax({ type : "post", url : "idcheck.htm", data : {userid:$('#userid').val()}, contentType: "application/json; charset=utf-8", success : function(data){ console.log(">"+data+"<"); if(data.trim() == "1"){ alert("사용 불가능한 아이디 입니다."); $('#userid').val(""); }else{ alert("사용가능한 아이디입니다."); } } }); } }); }); | cs |
cf. 이 때, parameter로 받는 객체가 VO객체가 아닌 Map객체라면 Json으로 받은 객체를 자동으로 Map객체로 Mapping해 넘겨줄 수 있다.
cf. 참고
Model과 ModelMap의 차이는?? >> Model은 interface이며 ModelMap은 Model을 구현한 클래스이다.
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/ui/Model.html
jsonView로 비동기처리하는 방식 >> 권장
disptcher-servlet에 bean객체 추가
1 2 3 4 | <!-- controller에서 return된 String값과 bean객체의 이름이 같으면 --> <bean name="jsonview" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView" /> | cs |
controller 설정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | @RequestMapping("idckeck.htm") public View idcheck(String userid, ModelMap model) { System.out.println("들어옴"); System.out.println("userid = " + userid); try { Member member = service.getMember(userid); if(member ==null) { model.addAttribute("check", "true"); } else { model.addAttribute("check", "false"); } } catch (ClassNotFoundException | SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return jsonview; } | cs |
ajax 설정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | $(document).ready(function(){ $('#btnCheckUid').click(function(){ $.ajax( { type : "post", url : "<%=request.getContextPath()%>/joinus/idckeck.htm", data : "userid="+$("#userid").val(), success : function(data){ //서버 {"menu",list} //data > {} console.log(data.ckeck); console.log(data); if(data.check =="true"){ $('#check').text("사용가능") }else{ $('#check').text("사용불가") } } } ) }); }) | cs |
반응형
'BackEnd > Spring' 카테고리의 다른 글
Spring Boot - Lombok Annotation 사용하기 (0) | 2018.11.01 |
---|---|
Spring Ajax 배열파라미터 전달 & Mybatis foreach (0) | 2018.06.19 |
[20180503]Mybatis WIth Spring (1) | 2018.05.03 |
[20180503]Mybatis (0) | 2018.05.03 |
[20180425]AOP(Aspect Oriented Programming) (0) | 2018.05.02 |