2012-06-23 2 views
1

으로 전달하지 않습니다.이 질문은 큰 질문이라고 생각할 것입니다. 그러나 이유를 찾을 수없는 간단한 문제가있을 수 있습니다.Struts2 : struts.xml이 작업 이름

jsp 페이지에서 'index.jsp'라는 작업 이름이 'loginAction'인 양식 (간단한 로그인)이 있습니다. 작업 클래스에서 execute() 메서드는 사용자 이름, 암호가 유효한지 여부를 확인합니다. 유효한 로그인 인 경우, execute() 메소드는 WEB-INF 내부의 'jsp'라는 폴더에서 'account.jsp'라는 다른 JSP 페이지로 전달하는 SUCCESS를 리턴합니다.

문제는 struts.xml이 유효한 모든 로그인을 relavant url로 전달하지만 페이지 (account.jsp)를 검색 할 수 없다는 것입니다. 브라우저가 404 오류를 제공합니다. 그러나 브라우저에서 'not available' 방금 복사하여 브라우저의 주소 표시 줄에 수동으로 붙여 넣습니다. 그런 다음 페이지가 표시됩니다.
여기 는 struts.xml 파일 여기

<struts> 

<include file="/struts_auth.xml" /> 
<package name="default" extends="struts-default" > 

    <action name="login" > 
     <result>index.jsp</result> 
    </action>   
    <action name="loginAction" class="com.app.action.LoginAction"> 
     <result name="success">/auth/acc</result>  
     <result name="input">index.jsp</result> 
    </action> 

</package> 
위에서 struts.xml

<struts> 

<package name="author" extends="default" namespace="/auth" > 

    <action name="acc"> 
     <result name="success">/WEB-INF/jsp/account.jsp</result> 
     <result name="input">index.jsp</result> 
    </action> 

</package> 

에 포함 된 struts_auth.xml 파일이 있고이 말씀 브라우저입니다 그 이유는
description: The requested resource (/app/auth/acc) is not available.하지만이 URL (http : // localhost : 8084/app/auth/acc)를 브라우저의 주소 표시 줄에 복사하면 실제 페이지 만 보여줍니다. 제 문제가 어디에 있는지 알려주세요.

+0

성공 결과에'/ WEB-INF' 부분이 필요하다고 생각하지 않습니다. 그 부분없이 시도해 보셨습니까? – anu

+0

Mr. anu님께 감사드립니다. 나는 보안 목적 때문에 JSP를 넣었다. 어떤 식 으로든 다른 페이지가있는 웹 폴더에 계정 페이지를 넣으려고했습니다. " /account.jsp index.jsp '그러나 그것은 또한 작동하지 않았다. –

답변

3

더 나은 이해를 위해 다음 링크를 참조하십시오. How to redirect to another action

<!-- Redirect to another namespace --> 
    <result name="success" type="redirectAction"> 
     <param name="actionName">acc</param> 
     <param name="namespace">/auth</param> 
    </result> 
+0

Mohana Rao SV 정말 고마워. 그것은 완벽하게 작동했습니다. 불행히도 내 질문에 문제가 해결되지 않습니다. 내가했던 방식 (내가 내 질문에 보여준 코드처럼)은 초기 프로젝트에서 일했다. 이번에는 오류가 발생했다 : (그 이유는 내가 흥분했다.) 어쨌든, 나는 당신의 솔루션으로 전진 할 수있다. –

1

문제가 여기에있다 : 자체는 기본적으로 디스패처를 설정합니다 struts2 <result name="success">/auth/acc</result>. 를 노드에 주어진 어떤 형식 이름이없는 경우, type.You는 다음과 같이 코드를 수정할 수 있습니다 <result name="success" type="redirectAction"> <param name="actionName">actionName</param> <param name="namespace">namespace</param> `