본문 바로가기
IT_Developers/JAVA

Spring - 스프링 컨트롤러로 받은 데이터를 View에 노출 하기

by 고코더 2019. 8. 14.

파라미터로 받아 view 노출하는 예제


안녕하세요.
고코더 입니다.


 1. 오늘은 HttpServletRequest 에 대해 알아보려고 합니다.
URL로 접근하는 모든 패턴은 디스패처서블릿이 가로챈다고 말씀드렸습니다.

 2. 이걸 기초로 오늘은 파라미터에 있는 정보를 HttpServletRequest로 데이터 전송을 받아보는 방법을 알아보겠습니다.
이전에 만든 hello 소스에 추가하여 개발해보겠습니다.


 3-1. 컨트롤러에 함수 추가 / HttpServletRequest / @RequestMapping


 3-2. HomeController.java를 수정 합니다. 


 3-3. 그리고 아래 코드를 입력 합니다
1
2
3
4
5
6
7
8
9
10
11
12
13
@RequestMapping(value = "/gocoder/view", method = RequestMethod.GET)
public String gocoderView(HttpServletRequest httpServletRequest, Model model) {
    
    String name = httpServletRequest.getParameter("name");
    String blog = httpServletRequest.getParameter("blog");
    String homepage = httpServletRequest.getParameter("homepage");
    
    model.addAttribute("name",name);
    model.addAttribute("blog",blog);
    model.addAttribute("homepage",homepage);
            
    return "gocoder/view";
}    
cs

 3-4. HomeController.java 추가된 소스 설명

41번 라인 
    - @RequestMapping는 해당 컨트롤러에서 해당 URL 패턴을 가로채는 어노테이션입니다. 
    - URL 패턴 /gocoder/view로 들어오는 접속을 캐치 합니다. 그리고 get인걸 확인합니다.     

42번 라인
    - gocoderView라는 함수를 만들고 HttpServletRequest를 선언합니다. 해당 클래스로 파라미터를 받을 수 있습니다. 
    - model 함수는 view에 데이터를 전달하기 위해 꼭 필요한 존재입니다.

44번~46번 라인
    - 42번 라인에서 선언한 httpServletRequest 클래스에 getParameter 를 이용해 파라미터 값을 가져옵니다.
    - 각 파라미터로 오는 값을 받습니다. 파라미터명과 변수명을 똑같이합니다. 헷갈리지 않기 위해 

48번~50번 라인
    - 프론트에 model을 통해 해당변수로 값을 담아 넘깁니다.
    - 이때도 역시 동일한 변수명으로 el태그를 프론트에 사용할때 헷갈리지 않게 사용 합니다. 

52번라인    
    - view에 전달할 주소를 적습니다. 
    - 마지막 파일명을 제외한 슬러시는 폴더가 됩니다. 즉 여기서 폴더는 gocoder 폴더 입니다.


 4. view파일 생성 / el태그


 4-1. 해당 폴더 위치에 view.jsp를 생성 합니다.
/hello/src/main/webapp/WEB-INF/views/gocoder/view.jsp


 4-2. 아래처럼 HTML을 코딩 합니다. 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8" language="java" %>
<%@ page session="false"%>
<html>
<head>
<title>Home</title>
<meta http-equiv="Content-Type" content="text/html;  charset=utf-8" />
</head>
<body>
     <h1>이름</h1>
     <p>${name}</p>
     <h1>블로그</h1>
     <p>${blog}</p>
     <h1>홈페이지</h1>
     <p>${homepage}</p>
</body>
</html>
cs

 4-3. 소스설명

2번 라인 
    - JSP 상에 이미 입력된 한글 텍스트가 깨지지 않도록 엔코딩 태그를 넣어줍니다.
    ->

11,13,15번 라인
    - el태그를 사용해 모델에서 보내온 변수를 사용하여 프론트에 노출 합니다. 


 5. 결과화면 


 5-1. 정상적으로 코딩하셨다면 해당 링크로 접속시에 정상적인 뷰화면이 보입니다. 

 5-2. 가장 간단한 방식으로 파라미터를 받아 뷰에 노출하는 방식을 사용하였습니다.



마무리


여기까지 이해가셨다면 
스프링이 재밌어집니다.


댓글