spring practice_0605

Choi Suyeon·2024년 6월 5일

VO web parameter받기

HttpServletRequest, 단일형( String, int,,,), VO를 사용하여 입력 값을 받을 수 있다.

단일형으로 web parameter받기

String이나 기본형으로 받을 수 있다.
주의 : HTML Form Control의 name 속성과 method의 parameter명이 반드시 같아야 한다.

@RequestParam

  • 단일형인 경우 HTML Form Control의 이름과 method parameter명이 다른 경우에 매핑을 해주거나, 필수입력 매개변수를 처리하거나, Form Control에 값이 없을 때 기본값을 설정해야할 때 사용.

  • method매개변수 앞에 정의

  • 사용법)

1. HTML Form Control의 이름과 method parameter명이 다른 경우 => name속성을 사용.
<input type="text" name="name">

public String method( @RequestParam(name="Form Control명") String myName )

* HTML Form Control의 명과 method parameter명이 같다면 생략가능.

2. 필수 입력값의 처리
required = "true | false"

-이름은 필수 입력사항
public String method( @RequestParam(required="true") String name )

3. "" 나 null에 대한 처리
defaultValue="기본값"
-이름이 입력되지 않으면 기본값이 매개변수의 값으로 입력된다.
public String method( @RequestParam(required="false",defaultValue="기본값") String name )

(a.do?name=윤웅찬&age=20&zipcode=
 "윤웅찬" = request.parameter("name");
 "20" = request.parameter("age");
 "" = request.parameter("zipcode");
 null = request.parameter("email");)
  • 매개변수가 VO라면 setter method에 @RequestParam 설정한다.
    public void setName( @RequestParam(...) String name )

Controller에서 View로 데이터 전송

HttpServletRequest, HttpSession사용.
Model, ModelAndView 사용.

  • HttpServletRequest 사용

Model

org.springframework.ui패키지에서 제공되는 interface.
request와 session으로 동시에 값을 넣을 수 있다.
데이터와 view페이지를 분리할 수 있다.

  • 사용법)
  1. Controller method에서 parameter로 Model interface를 선언.

@GetMapping
public String method(Model model){

  1. method안에서 Model interface가 제공하는 method사용.
    -spring 5.2에서부터는 세션에 설정 값을 model을 통해서 받을 수 있다.(getAttribute());

-view페이지로 전달할 값 설정.
model.addAttribute("이름", 값);

  1. JSP에서는 HttpServletRequest의 내장객체(request)를 사용하여 값을 받아 화면을 구성.
    -scriptlet
    <%
    String 이름 = (casting)request.getAttribute("이름");
    %>

-EL
${ requestScope.이름 }
}


ModelAndView

org.springframework.web.servlet패키지에서 제공하는 클래스.
객체화를 개발자가 해야한다.(생명주기를 개발자가 관리)
View페이지와 데이터를 같이 가지고 있다.
@ExceptionHandler를 사용하여 예외처리할 때 사용.

  • 사용법)
  1. Controller에서 반환형을 ModelAndView로 설정한다.

@GetMapping(...)
public ModelAndView method(){

  1. ModelAndView를 생성하고, 뷰 페이지명과 View페이지로 전달할 값을 설정.
    ModelAndView mav = new ModelAndView("뷰페이지명");

-view페이지 명 설정
mav.setViewName("뷰페이지명");

-view페이지로 전달할 값 설정.
mav.addObject("이름", 값);

  1. ModelAndView를 리턴
    return mav;

  2. JSP에서는 HttpServletRequest의 내장객체(request)를 사용하여 값을 받아 화면을 구성.
    -scriptlet
    <%
    String 이름 = (casting)request.getAttribute("이름");
    %>
    -EL
    ${ requestScope.이름 }

}

0개의 댓글