2012-01-21 3 views
0

스프링 3.0.7 요청 매핑 및 스프링 표준 테마 구현에 문제가 있습니다. 그래서 http://myApp/myUrl와 URL이 처리스프링 요청 매핑 및 테마

@ Controller 
@RequestMapping(value="myUrl") 
Public MyControllerClass 

@RequestMapping(Method=requestMethod.GET) 
Public myGetHandler(){ 
} 

을 다음과 같이

내 컨트롤러를 구현하고 모두가 좋다.

테마는 링크 연결이

<a href="?theme=mytheme"/> 

과 테마에 대한 스프링 설정에 의해 활성화되는 것은 내가 myURL이 페이지에이고 경우에 따라서

<bean id="themeChangeInterceptor" class="org.springframework.web.servlet.theme.ThemeChangeInterceptor"> 
    <property name="paramName" value="theme" /> 
</bean> 

입니다 이 링크를 클릭하면 테마가로드되고 myGetHandler도 호출됩니다. 내 URL에 매개 변수를 추가하면

그러나

/myUrl?someParm=somevalue 

지금 내 컨트롤러는 이전 작품과 내가 매개 변수에 액세스하지만 테마 링크를 클릭 (HREF 위 참조) 할 수 이것에 대한 어떤 페이지는 다음과 같습니다.

/myUrl?theme=myTheme 

예외가 발생하고 페이지 또는 테마로드가 발생하지 않습니다. 나중에 스택 추적을 게시 할 것이지만 컨트롤러 (그리고 주제 인터셉터는 아님)에 문제점을 제안했습니다.

테마와 매개 변수화 된 URL이 작동하도록 내 컨트롤러를 매핑하는 방법은 무엇입니까? 이상 적으로는 내 매개 변수화 된 URL 만 처리하도록 요청 매핑을 변경하려고합니다.

나는이는 테마 링크 실패 내 매개 변수를 사용하여 링크를 작동하지만

@RequestMapping(value="myUrl",params = "someParam=someValue") 

에 내 요청 매핑을 변경했습니다.

+0

"테마 링크를 클릭하면 충돌이 발생합니다"라고 자세히 설명해 주시면 도움이됩니다. 링크의 URL은 무엇입니까? 그리고 그것을 클릭하면 어떻게됩니까? 코드에서 예외가 발생하면 전체 스택 추적 및 관련 코드를 게시하십시오. –

+0

오류 조건을 명확히했습니다. 나중에 스택 추적을 게시 할 예정입니다. – stimpy

답변

1

내 생각에 url이 params와 함께있는 경우 <a href="?theme=mytheme"/>의 casues double "?"을 클릭하십시오. 도착 URL에 /myUrl?someParm=somevalue?theme=mytheme을 입력하십시오.

URL이 하나만있는 URL을 작성하려면 c : url 또는 javascript와 같은 것을 사용해야합니다. 및 &을 params delimeter로 변경하십시오.

+0

테마 URL은 봄에 의해 지정됩니다. 나는 그것을 바꿀 수 없다. 그것은 테마 인터셉터에 의해 인터셉트됩니다. 디버그 로그를 확인하고 확인하지만 테마 인터셉터가 실행되면 기존 URL이 "refires"됩니다. – stimpy