관리 메뉴

nalaolla

@RequestParam 본문

SPRING

@RequestParam

날아올라↗↗ 2016. 5. 31. 09:47
728x90
반응형

@RequestParam


관련 문서


required

  • spring framework 2.5 or higher


RequestParam annotation은 key=value 형태로 화면에서 넘어오는 쿼리스트링 혹은 폼 데이터를 메소드의 파라미터로 지정한다. 대체로 파라미터의 개수가 적을때 사용한다.

method( @RequestParam( PARAM ) Obj )

method( @RequestParam Map)

  • PARAM: 전달되는 파라미터의 이름을 지정한다. 이름 외에 기본값(defaultValue), 필수여부(required)를  설정할 수 있다. 값이 할당될 변수의 타입이 Map 혹은 MultiValueMap일 땐 명시하지 않는다.
  • Obj: PARAM으로 지정된 이름과 일치하는 파라미터의 값을 할당할 변수. 보통 String 타입을 선언하지만 넘  어온 값이 반드시 숫자일 경우에 한해서 int 등의 숫자 타입도 가능하다.


이름과 변수를 지정하는 방식 (1:1 매핑)

아래에서 xxx/editBlog.do?blogId=3 과 같이 접근할 때, editBlogHandler 메소드의 파라미터인 blogId에는 3이 셋팅된다. 필수 요건이 아닐 경우, @RequestParam(value="id", required="false")와 같이 옵션을 주고 사용할 수 있다.

@Controller
public class BlogController {
    
    @RequestMapping("/editBlog")
    public ModelMap editBlogHandler(@RequestParam("blogId"int blogId) {
        blog = blogService.findBlog(blogId); 
        return new ModelMap(blog);
    }
 
    // ...
}
cs
@RequestMapping(value="/...", method={RequestMethod.GET, RequestMethod.POST})
public String submit(HttpServletRequest req, 
        @RequestParam(value="num1"int num1, 
        @RequestParam(value="num2"int num2, 
        @RequestParam(value="oper"String oper) throws Exception {
    // value: request parameter의 이름
    
    // 생략
}
 
//@RequestParam 어노테이션이 적용된 파라미터는 기본적으로 필수 파라미터이다.
//따라서, 명시한 파라미터가 존재하지 않을 경우 400 에러가 발생한다.
//여기서 파라미터에 값이 있을수도 없을수도 있는 로직을 구현하려면 다음처럼 작성한다.
 
@RequestMapping(value="/...", method={RequestMethod.GET, RequestMethod.POST})
public String submit(HttpServletRequest req, 
        @RequestParam(value="num1", defaultValue = "0"int num1, 
        @RequestParam(value="num2", defaultValue = "0"int num2, 
        @RequestParam(value="oper", required=falseString oper) 
        throws Exception {
    
    // 생략
}
cs


Map 방식 (N:1 매핑)

값을 할당할 변수의 타입을 Map 혹은 MultiValueMap으로 사용하는 방법.

@RequestMapping("/faqDetail")
public String faqDetail(@RequestParam HashMap<StringString> map) {
    String searchValue = map.get("searchValue"); 
    // req.getParameter("searchValue") 와 같다.
 
    return "/board/faq/faqDetail";
}
cs


728x90
반응형

'SPRING' 카테고리의 다른 글

Spring Framework: beans - 의존관계 설정  (0) 2016.05.31
Spring Framework: 포워딩/리다이렉션  (0) 2016.05.31
@ModelAttribute  (0) 2016.05.31
@Controller  (0) 2016.05.31
@RequestMapping  (0) 2016.05.31