2012-02-10 6 views
0

으로 시작하는 URI를 제외한 모든 URI에 매핑 할 Spring 3 MVC 컨트롤러를 설정하는 방법 현재 프로젝트에서는 Spring 3 MVC를 사용하고 있으며 클린 URL을 구현해야합니다./category/subcategory/id와 같은 것입니다. 그래서 우리는이 같은 모든 URL에 DispatchServlet를 매핑했습니다css /, js /, img/

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

우리는 지금 하나의 컨트롤러의 하나의 방법을 통해 이동이 응용 프로그램에 대한 모든 요청을하고 싶습니다. 그래서 주석 등 그 방법

@RequestMapping("/**") 

그러나이 문자 그대로 IMG/JS/및 CSS /에있는 것들과 같은 정적 리소스,해야 어떤 요청을 포함하여 (물론) 모든 것을 매핑합니다. 하나의 @RequestMapping 어노테이션으로 다른 것을 캡처하는 동안 이러한 정적 리소스를 포함하는 디렉토리를 제외 할 수있는 방법이 있습니까? 이 솔루션은 밝혀졌다

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.js</url-pattern> 
</servlet-mapping> 

답변

0

: (*은 .js, * .CSS 등)이 작동하는지

-1

는 잘 모르겠어요,하지만 당신은 각 파일 형식에 대해이 같은 추가 시도 할 수 메서드에 반대되는 @RequestMapping 주석을 클래스 수준으로 이동해야합니다. 그런 다음 컨트롤러가 컨트롤러를 구현하도록 만들어졌으며 컨트롤러의 로직이 필요한 handleRequest 메서드로 이동되었습니다.

어떤 이유로 든 정상적으로 작동합니다. 왜 그것이 작동하는지 정확히 이해하기 위해서는 Spring MVC 내부 로직에 대해 충분히 이해하지 못합니다. 나는 더 투명하고 "봄"의 방법이 있기를 바랐다.

+0

답장을 보내 주셔서 감사합니다. ddrmaxgt37을 고맙겠습니다. 그렇지만 .js (등)로 끝나는 _only_ 파일은 Spring과 컨트롤러에서 처리됩니다. 우리는 그러한 URI가 컨트롤러에 의해 처리되는 것을 피하는 방법을 찾고 있습니다. (다른 모든 것들은 그렇습니다.) Spring에 의해 (더 이상적으로) 처리되는 것을 피하십시오. –