2011-02-04 3 views
2

나는이 두 URL을 다른 액션으로 라우팅하려고합니다. 우리는 스트럿츠 1.2을 사용하고 있습니다 :
/ABC 데프/제품
을 /ABC 데프struts-config.xml에서 정규 표현식을 사용할 수 있습니까?

내가 처음이 작업 퍼팅 시도 :

<action path="/abc*/products" type="com.business.exampleAction"> 
    <forward name="success" path="/go"/> 
</action> 

다음 다음 시간 이후에이 하나

<action path="/abc*" type="com.business.differentExampleAction"> 
    <forward name="success" path="/goElsewhere"/> 
</action> 

하지만 항상 두 번째 작업 (이 경우 differentExampleAction)으로 이동합니다. . * 또는 (. *)처럼 *에 대해 여러 가지 반복을 시도했지만 실제로 작동하는 것도 찾지 못했습니다.

내가 읽은 바로는 struts-config에서 허용되는 정규 표현식과 같은 문자가 와일드 카드 기호 (* 및 **) 인 것처럼 보이지만 잘못된 것입니다.

답변

1

Struts 1.x의 와일드 카드가 맞습니다 ... * 뒤에는 아무 것도 입력 할 수 없습니다. documentation section 4.10을 참조하십시오. 이것은 Struts 1.x의 많은 한계 중 하나입니다. 부여 된 것은 (현재 약간의 꼬임이있는) 최초의 Java MVC 프레임 워크 중 하나이기 때문에 Spring MVC 3.x로 전환하기로 결정했습니다 그것은 나를 수행 할 수 있습니다 더 휴식 같은 URI 예를 들면 다음과 같습니다

/abc/product/{productId}/part/{partId} 

난 그냥이 쉽게 스트럿츠 1.x 버전에서 수행 할 수있는 방법을 볼 수 없습니다

+0

실제로 struts-config에서 정규식을 사용할 수 있다는 것을 알았습니다. 그들은 예상대로 작동하지 않지만 일을합니다. 나는 struts-config를 편집 할 때 내 사이트를 파괴하지 않도록 수많은 테스트를 만들어야했습니다. 그러나 새로운 프레임 워크로 옮겨 갈 때까지 지금은 함께하고있는 것 같습니다. –

관련 문제