SpringMVC 사용자 입력 방법 5가지와 QueryString 입력 방법 #11
<SpringMVC 사용자 입력 5가지>
사용자로부터 전달되는 값
값의 종류
QueryString URL로 전달되는 문자열
POST 사용자의 입력으로 전달되는 문자열
Path 경로로 전달되는 문자열
Cookie 브라우저에 보관하고 있던 문자열
Header 요청 헤더로 전달되는 문자열
< QueryString 입력 방법 >
http://localhost:8080/customer/notice/list?p=1
HttpServletRequest로 받아서 쓰는 법
@RequestMapping("list")
public String list(HttpServletRequest request) throws ClassNotFoundException, SQLException {
String p = request.getParameter("p");
System.out.println(p);
return "notice.list";
}
더 쉽게 사용하는 법
@RequestMapping("list")
public String list(String p) throws ClassNotFoundException, SQLException {
System.out.println(p);
return "notice.list";
}
<QueryString 변수명과 기본값 처리>
변수명 변경
@RequestMapping("list")
public String list(@RequestParam("p") String page) throws ClassNotFoundException, SQLException {
System.out.println("page:"+page);
return "notice.list";
}
p prameter의 기본값이 없을 경우 400에러가 뜸 (Required String parameter 'p' is not present)
-페이지를 처음 로드할 때 등
http://localhost:8080/customer/notice/list
기본값 처리
@RequestMapping("list")
public String list(@RequestParam(name="p", defaultValue="1") int page) throws ClassNotFoundException, SQLException {
System.out.println("page:"+page);
return "notice.list";
}
전달하는 변수 타입을 int 로 해도 문제가 없다
< @RequestParam Optional 속성 >
참고 - https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html
required 옵션의 기본값은 true
false로 설정하고 defaultValue를 안 줄 경우 변수타입에 따라 500 에러, 또는 null 값을 뱉어낸다
(참조변수형 매개변수에 param을 담을 경우 null 값이 올 수 있으므로 page는 출력되고 null값이 담긴다)
null 값을 처리하고 싶을 때 사용
value 옵션
name 옵션의 별칭이다
둘다 같이 쓸 수는 없고 뭘 쓰든 결과는 같다
name과 value 쓰고 싶은 것을 사용하면 됨