SELECT * FROM user;
user.findAll()
Hibernate
, OpenJPA
등이 JPA를 구현함Controller에서 parameter(인수)값을 전달할 때 사용되는 방법
@Requestparam
@Pathvariable
http://localhost:8000/board/1
public String view(
@RequestParam("id") int id,
@RequestParam("name") String name,
@ReqpestParam("file") MultipartFile file
)
{ ... }
@RequestParam
애노테이션의 기본 값으로 지정해주면 된다. 요청 파라미터의 값은 메소드 파라미터의 타입에 따라 적절하게 변환된다.public String add(@RequestParam Map<String, String> params)
{ ... }
@RequestParam
에 파라미터 이름을 지정하지 않고 Map<String, String>
타입으로 선언하면 모든 요청 파라미터를 담은 맵으로 받을 수 있다. 파라미터 이름은 맵의 키에, 파라미터 값은 맵의 값에 담겨 전달된다.public void view(@RequestParam(value="id", required=false, defaultValue="-1")
int id) {..}
@RequestParam
을 사용했다면 해당 파라미 터가 반드시 있어야만 한다. 없다면 HTTP 400 - Bad Request를 받게 될 것이다. 파라미터를 필수가 아니라 선택적으로 제공하게 하려면 required
엘리먼트를 false
로 설정해주면 된다. 요청 파라미터가 존재하지 않을 때 사용할 디폴트 값도 지정할 수 있다.
@RequestMapping("/member/{membercode}/order/{orderid}")
public String lookup(@PathVariable("membercode") String code,
@PathVariable("orderid" ) int orderid) {
...
}
@RequestMapping
의 URL에 {}
로 들어가는 패스 변수(path variable)를 받는다. 요청 파라미터를 URL의 쿼리 스트링으로 보내는 대신 URL 패스로 풀어서 쓰는 방식을 쓰는 경우 매우 유용하다.
/user/view?id=10
예를 들어 id가 10인 사용자를 조회하는 페이지의 URL을 쿼리 스트링으로 파라미터를 전달하면 보통 다음과 같이 작성하게 된다.
/user/view/10
파라미터를 URL 경로에 포함시키는 방식으로 하면 다음과 같은 URL을 사용할 수 있다. URL의 특정 위치에 파라미터 값을 넣게 하면,이해하기 쉽고 보기 좋은 URL을 만들 수 있다.
심미적으로 깔끔하지만,타입이 일치하지 않는 값이 들어오면 예외가 발생해 400 - Bad Request
응답 코드가 전달된다.