Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 27 | 28 | 29 | 30 |
Tags
- 도커
- 배포
- 웹소켓
- autowired
- CSS
- docker
- Ajax
- Spring
- 비트코인
- SQL
- Servlet
- express
- 암호화
- AWS
- model1
- jQuery
- Cookie
- tiles.xml
- 알고리즘
- JSP
- websocket
- 블록체인
- HTML
- node.js
- JavaScript
- PL/SQL
- 웹게임
- RDS
- EC2
- phaser
Archives
- Today
- Total
記錄
Spring) ajax _1(MappingJackson2JsonView 사용) 본문
1. pom.xml 에서 jackson dependency 선언
(비동기로 json타입의 데이터를 가져올 것이기 때문에)
<!-- jackson lib -->
<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>
2. 나중에 Controller에서 @Autowired로 bean을 찾아 쓸 수 있도록 DispatcherServlet에org.springframework.web.servlet.view.json.MappingJackson2JsonView을 bean 설정
<bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView" />
3. 컨트롤러에서 아래와 같이 처리
(핵심: jsonview를 @Autowired 해주고 메소드에서 return 해주면 바로 클라이언트로 간다)
@Controller
public class AjaxController {
// org.springframework.web.servlet.view.json.MappingJackson2JsonView
// @Autowired에 의해 자동으로 정의된 bean에서 찾아준다
@Autowired
private View jsonview;
@RequestMapping(value="json.kosta")
// 데이터를 담기 위해서 ModelMap 선언
public View jsonkosta(String command , String name, String[] arr , ModelMap map){
// 배열로 보냈기 때문에
// String[] 으로 받았음을 숙지
// ajax로 보내는 데이터의 key값과
// 메소드의 파라미터 명이 일치하기 때문에
// 잘 들어온 것을 확인할 수 있다
System.out.println("command : " + command);
System.out.println("name : " + name);
System.out.println("arr : " + arr);
System.out.println(Arrays.toString(arr));
ArrayList<String> list = new ArrayList<>();
list.add("치킨맥주");
list.add("돈까스");
list.add("치킨피자");
// 여기서 MedelMap에 데이터를 담는다
// 이때 실린 데이터가 클라이언트로 넘어가게 된다
map.addAttribute("menu", list);
// 이렇게 View 타입을 리턴하고 위에서 @Autowired로 선언해준
// jsonview를 리턴하면 리졸버를 거치지 않고 바로 클라이언트로 감
return jsonview;
}
}
4. 비동기 요청하고 원하는 식으로 데이터를 뿌려준다
$(document).ready(function(){
$('#ajaxBtn').click(function(){
var array = new Array();
array[0] = "a";
array[1] = "b";
$.ajax(
{
type : "post",
url : "json.kosta",
// 아래와 같이 주소에 달아서 보내도 된다
// 이렇게 보내면 받는 컨트롤러의 메소드에서
// 파라미터의 변수명을 일치시켜줘야 들어간다
// cf) 배열은 String[] arr 처럼 타입을 배열로 받아야 한다
data : "command=AjaxTest&name=java&arr="+array,
success : function(data){
console.log(data);
$('#menuView').empty();
var opr="";
$.each(data.menu,function(index,value){
console.log(index + "/" + value);
opr += index + "." + value + "<br>";
});
$('#menuView').append(opr);
}
}
)
});
'Web > Spring framework' 카테고리의 다른 글
Spring) 웹소켓_1) 기본 개념 (Echo를 예시로) (1) | 2018.05.13 |
---|---|
Spring) ajax _2(@ResponseBody, @RequestBody 사용) (0) | 2018.05.11 |
Spring) security + 암호화 세팅 (0) | 2018.05.10 |
Spring+Mybatis+Tiles 4) Tiles의 사용(layout.jsp를 중심으로) (0) | 2018.05.06 |
Spring+Mybatis+Tiles 3) Controller (0) | 2018.05.06 |
Comments