2012-07-13 2 views
3

아래 예제와 비슷한 컨트롤러 URI 계층 구조가 있습니다.Spring MVC 인터셉터 내에서 URI 템플릿을 사용하는 방법은 무엇입니까?

@RequestMapping(value="company/{id}") 
public abstract class BaseCompanyController 
{ 
    // variety of helper methods, protected autowired objects 
} 

@Controller 
@RequestMapping(value = "company/{id}/documents") 
public class DocumentsController extends BaseCompanyController 
{ 
    // document controller methods 
    @RequestMapping(value="something",.... etc) 
    public void doSomething(){} 
} 

@Controller 
@RequestMapping(value = "company/{id}/financials") 
public class FinancialsController extends BaseCompanyController 
{ 
    // financials controllers methods 
} 

내가 원하는 것은 모든 자식 (child) 컨트롤러에서 어떤 핸들러 메소드보다 먼저 실행되도록 코드를 정의하는 것입니다. 예를 들어, doSomething 메서드가 DocumentsController에서 호출되기 전에 일부 코드를 실행하고 싶습니다. 내가하고 싶은 일은 특정 URI 계층 구조에 대해 고유합니다.

인터셉터를 사용하여 처리기 메서드를 실행하기 전에/company/{id}의 회사 ID와 같은 URI에서 URI 매개 변수를 추출하는 방법은 무엇입니까? 나는 정말로 URL을 손으로 감당하고 싶지 않니?

/company/{id}와 같은 URI로 인터셉터를 좁힐 수 있습니까 인터셉터 매핑이 URI 템플릿을 이해합니까?

답변

2

각 하나 <mvc:mapping/>path 속성을 사용하여 특정 URI를위한 인터셉터를 사용할 수 있습니다

<mvc:interceptors> 
    <mvc:interceptor> 
     <mvc:mapping path="/company/*/documents" /> 
     <bean class="com.mypackage.DocumentsInterceptor" /> 
    </mvc:interceptor> 
</mvc:interceptors> 

참조 here을.

관련 문제