Spring Framework _ 5

ayleen·2022년 1월 19일
0

하나의 jsp에서 그 동안 만들었던 jsp 페이지들을 출력할 수 있도록 하나로 합쳐보자.
동기식 처리를 이용하여 하나로 합칠 수 있는데, 웹사이트를 응용소프트웨어처럼 만들 수 있다.






▲ basic.jsp로 합쳐주기 위해 basic을 제외한 이 전에 만들었던 jsp 페이지들을 모두 삭제해준다.
그리고 index.jsp도 같이 삭제해준다. 그리고 컨트롤러 안의 내용도 모두 삭제해준다.






▲ basic.jsp에서 script안에 html페이지가 준비되면 loadList()함수를 실행해주는 람다식을 작성해주었다.
** 람다식 : 함수를 하나의 식으로 표현한 것. 메소드의 이름이 필요하지 않기 때문에 익명함수의 한 종류라고 할 수 있다. 불필요한 코드를 줄이고 가독성을 높일 수 있다.





loadList()함수를 실행해야하는데 jsp의 script안에 써주면 html이 너무 길어지게 되니까 따로 파일을 만들어주고 jsp에 연결해주는 방법을 이용했다.


▲ 우선 함수들을 만들어 줄 파일을 resources 아래에 js파일을 만들어주고 practice 라는 이름으로 만들어주었다.
그리고 만들어주었던 람다식 윗부분에 practice를 찾아갈 수 있는 script를 작성해준다.


▲ 소스를 찾아가는 경로는 servlet-context.xml에 미리 지정되어있기 때문에 resources 아래에 파일을 만들어준 것이다.






▲ 람다식에서 만들어준 loadList() 함수를 만들어주고 ajax로 비동기통신하는 코드를 입력해준다.
통신 성공시 실행하는 htmlView함수도 아랫부분에 만들어준다.






▲ loadList()에서 연결하는 boardList.do 메서드를 컨트롤러에서 만들어준다.
이때 목록을 json형태로 받아오는데 Spring에서는 jackson-databind를 사용하여 자동으로 변환할 수 있다

@ResponseBody
frnotcontroller가 ajax함수로 응답하라는 의미로 받아들임.
@ResponseBody가 붙은 파라미터에는 HTTP 요청의 본문 body부분이 그대로 전달된다.
자바객체를 HTTP요청의 바디내용으로 매핑하여 클라이언트로 전송한다.

jackson-databind
Java Object를 JSON으로 변환하거나 JSON을 Java Object로 변화하는데 사용할 수 있는 라이브러리
pom.xml에 dependency 추가하면 사용 가능.

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>




참고
servlet-context.xml : https://fromleaf.tistory.com/180
@ResponseBody : https://cheershennah.tistory.com/179
jackson-databind : https://tychejin.tistory.com/134
profile
asdf

4개의 댓글

comment-user-thumbnail
2022년 1월 20일
  1. ajax로 json으로 받아온 데이터 출력방법은 어떻게 될까요?
2개의 답글