2012-08-08 2 views
0

두 개의 디렉토리가 있는데, 둘 다 디버깅을 위해 동일한 내용으로되어 있습니다. 하나는 zxc이고 다른 하나는 welcome입니다. 이 코드를 사용하여 welcome 디렉토리를 사용하는 내 행동을 얻기 위해 노력하고 있어요 :디렉토리 매핑 및 작업 매핑

<action name="welcome"> 
    <result>/welcome/welcome.jsp</result> 
</action> 

나는 페이지가 성공적으로 표시됩니다 다음 <result>/zxc/welcome.jsp</result>를 사용하는 경우. 위의 경우 <result>/welcome/welcome.jsp</result>을 사용하면 error 404 - resource not found이됩니다.

편집 1 :

나는 또한 URL이 비어있는 경우 기본적으로 welcome로 리디렉션됩니다이 작업을 가지고 :

<action name=""> 
    <result type="redirect">welcome</result> 
</action> 

편집 2 :

스트럿. xml 구성 :

<package name="website" namespace="/" extends="struts-default, json-default"> 
    ... 
</package> 

위의 두 가지 작업 모두는이 패키지 안에 있습니다.

+0

정확히 무엇을하고 싶습니까? –

+0

미안하지만 이해가 늦어 질 수 있습니다. 여전히 정확히 어떤 문제가 발생했는지 확신 할 수 없습니다.이 URL을 간단하게 매핑 할 수 있으며, 기본값 인 성공하면 'welcome/welcome.jsp'로갑니다. –

+0

'example.org/welcome/welcome.jsp'와 같이 URL에 경로가 나타납니다. – Pigueiras

답변

0

이 네임 스페이스의 문제이어야한다, 해결책은 다음과 같습니다

<action name=""> 
    <result type="redirect">/welcome</result> 
</action> 

예 : URL이 http://hostname/${contextPath}/something/something입니다

경우 welcome로 리디렉션하는 경우, 다음의 URL이 http://hostname/${contextPath}/something//welcome/welcome.jsp, 같이 할 404을 참조하고 /welcome으로 리디렉션하는 경우 'http : // hostname/$ {contextPath} /welcome/welcome.jsp'로 리디렉션되어야합니다.

Important:/welcome을 적어 두거나 <param name="namespace">/</param>을 사용해야하는 경우 잘 모르겠습니다. 컨벤션 플러그인을 사용하고 있습니다. 그냥 시도해보십시오.

+0

감사합니다. 하지만 그 행동은 완벽하게 작동합니다. 위에서 언급 한 바와 같이 그것에 대해 아무것도가'type' 제외하고는 변경할 필요가 없습니다 ... 문제는 다른 조치입니다 : '<작업 이름 = "환영"> /welcome/welcome.jsp ' – ThreaT

+0

안녕하세요,이 내 해결책을 시도 했어.나는 다른 행동에 문제가 있다는 것을 알고 있지만 나는 이것을 나 자신으로 시도했다. 그리고 그것은 옳을 것이다. – Jaiwo99