2012-02-24 4 views
1

이것은 스프링을 아는 사람들에게는 간단한 질문 일 수 있지만, 초보자이므로 어쨌든 물어볼 것입니다.스프링 애플릿의 중괄호 값

좀 스프링 코드를 통해 갈거야 내가 코드의이 부분에 대한 다음과 같은 -

@RequestMapping(value="/{id}") 
public void show(@PathVariable("id") long id, Model model) {...} 

코멘트를 이해 할 수없는 나는 것은 - "URI 템플릿을 사용하는 경우, 액세스 매개 변수는 @PathVariable을 사용하여 주석. 이제 이전

, 내가 이해, 이에 의해

@RequestMapping(value="/url/path") 
public String list(Model model) {...} 

과 같은 코드를 통해 제공된 URL "/ URL/경로"가 발생 될 때마다, 목록() 메소드가 호출 될 것이지만 나는 이전의 주석을 이해할 수 없다. 무슨 뜻이에요?

또한, 다음 줄은 무엇을 의미 하는가 @PathVariable 주석 정규 표현식

@RequestMapping(value="/{id}") 
public void show(@PathVariable("id:[\\d]*") String idl) {...} // will match only numberic IDs 

를 통해 제한 할 수 있다고?

답변

2

16.3.2.2 URI Template Patterns

URI 템플릿은 @RequestMapping 방법에 URL의 선택된 부분에 편리하게 액세스 할 수 있습니다.

예를 들어 URI 템플릿 http://www.example.com/users/{userId}에는 변수 userId이 포함되어 있습니다. 변수에 fred 값을 할당하면 http://www.example.com/users/fred이됩니다. 당신이 방법 인수에 @PathVariable 주석을 사용할 수 있습니다 스프링 MVC에서

은 URI 템플릿 변수의 값에 바인딩합니다 :

그래서, 당신의 예 :

@RequestMapping(value="/{id}") 
public void show(@PathVariable("id") long id, Model model) {...} 

이 의지 {id}으로 표시된 URL의 일부를 추출하고 id 메서드 매개 변수에 바인딩합니다. /42 경로는 42id에 바인딩합니다.

+0

알 수 있습니다. 감사. – CodeBlue