Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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 31
Archives
Today
Total
관리 메뉴

우리마의 웹 개발

[Spring]JSP에서 요청 파라미터를 Controller에서 처리하는 방법(@RequestParam) 본문

WEB/Spring

[Spring]JSP에서 요청 파라미터를 Controller에서 처리하는 방법(@RequestParam)

우리마 2020. 2. 5. 14:13

앞선 글에서 가장 전통적인 방식으로 JSP에서 요청한 파라미터를 Java에서

getParameter() 메서드를 이용해서 처리하는 방법을 소개하였다.

 

두 번째 방법으로 @RequestParam 어노테이션을 이용해서 java코드가 조금 더 간결해지는 방법을 소개하겠다.

JSP( /study/join.jsp)
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
31
32
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 
<h2>요청 파라미터값 테스트!!</h2>
<form action="<c:url value='/study/register.do' />" method="post">
    <fieldset>
        <legend>회원가입 양식</legend>
        <p>
            - ID: <input type="text" name="userId" size="10"><br>
            - PW: <input type="password" name="userPw" size="10"><br>
            - NAME: <input type="text" name="userName" size="10"><br>
            - Age : <input type="number" name="userAge" size="10"><br>
            <input type="submit" value="회원가입">
        </p>
    </fieldset>
    
</form>
 
</body>
</html>
 
 
 
 
cs

JSP파일은 지난번과 크게 달라진게 없다. 단지 Controller에서 @RequestParam 어노테이션을 사용하면 자동 형 변환을 해준다는 것을 보여주기 위해 number type의 나이 값을 추가해서 받는다. 회원가입 버튼을 누르면 404페이지가 뜰것이다 register페이지를 작성하지 않았으니까... 

하지만 Eclipse콘솔을 확인 해야한다.

JAVA(StudyController.java)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@RequestMapping("/study/join.do")
    public String test(){
        return "/study/join";
    }
    @RequestMapping(value="/study/register.do")
    public void paramTest(@RequestParam("userId"String id, 
                        @RequestParam("userPw"String pw,
                        @RequestParam("userName"String name,
                        @RequestParam("userAge"int age){
        try {
            System.out.println("/study/join 요청: GET");
            System.out.println("ID: " + id);
            System.out.println("PW: " + pw);
            System.out.println("Name: " + name);
            System.out.println("Age: " + age);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        
    }
 
cs

1~4Line : join.jsp를 열기 위한 메서드이다. /study/join.do 요청이 들어왔을 때 /study/join.jsp 페이 지명을 view단으로 반환한다.

6 Line : paramTest의 매개변수로 @RequestParam 어노테이션을 사용하고 있다.

앞선 글에서 HttpServletRequest객체를 받았는데 하는 역할은 거의 똑같다.

HttpServletRequest객체는 getParameter() 메서드를 사용해서 값을 받고 출력하지만

@RequestParam 어노테이션은 그 과정을 포함하고 있다 그러니까 괄호 안에 input 태그의 name속성 값을 넣어주고 변수명을 지정해주면 그 변수에 input 태그로 받은 데이터가 저장이 된다. 나이로 받은 값은 number type이므로 int형으로 받아 콘솔에 출력해보자

jsp에서 넘긴 데이터가 잘 받아진다ㅎㅎ.

근데 요청이 get이 아니라 post다 잘못 적은거..ㅋㅋ

 

하지만 이방법 또한 받는 데이터의 수만큼 매개변수에 어노테이션을 적어줘야 되니까 getParameter 메서드랑 별반 다를 게 없어 보인다..

다음 글에서 진짜 SpringFramework에서 사용하는 파라미터의 처리방법에 대해서 소개하겠다.

Comments