2013-04-11 2 views
1

저는 Struts2와 Struts1을 사용하는 응용 프로그램에서 작동합니다. 이제 다른 작업에 대한 인증을 구현하려고합니다. 어떤 namespaceaction이 속하는지 확인하려면 interceptor을 사용하고 싶습니다. 모든 Struts1 동작을 Struts2 동작으로 래핑했습니다. 그래서 모든 strut1-action이 인터셉터를 통과합니다.Struts2/Struts1 액션 호출

<action name="contactsList" class="com.opensymphony.xwork2.ActionSupport"> 
    <result name="success">contactsList.do</result> 
</action> 

사용자가 브라우저에 struts1 조치를 입력하면 인터셉터가 호출되지 않습니다.

내 질문 : 브라우저에서 오는 동작 호출과 Struts 구성을 통해 호출 된 동작 호출간에 차이점이 있습니까? 가능하면 브라우저에서 Struts1 액션을 허용하지 않을 수 있지만 스트럿츠 내에서는 허용됩니다.

+2

struts1을 비활성화하고 struts2 디스패처 만 사용 하시겠습니까? –

+0

서블릿 매핑을 의미합니까? 조치 * .do IonTichy

+0

예 및 서블릿 자체. 그런 다음 사용자는 struts2 디스패처를 통해서만 컨텐츠에 액세스 할 수 있습니다. –

답변

0

잘못된 방향으로 생각했습니다. 실제로 Struts1 동작을 래핑하는 Struts2에는 Struts1 plugin이 있습니다. 그래서, 코드는 질문에

<action name="contactsList" class="org.apache.struts2.s1.Struts1Action"> 
    <param name="className">com.mycompany.myapp.ContactsListAction</param> 
    <result>contactsList.jsp</result> 
</action> 

같은 리디렉션 또는 조치가 아무것도없는 경우에도 서블릿에 파견하거나하는 Struts2 반환 결과를 볼 것이다. 브라우저로 무엇이든 할 수 있지만 Struts는 브라우저 요청에 반응하는 URL에 매핑 할 때까지 요청을 수락합니다.

+0

설명서에 "Struts 1 플러그인은 Struts 2 응용 프로그램 내에서 Strust 1 작업을 실행할 수 있도록하기위한 용도로만 제공되며, JSP에서 Struts 1 태그 라이브러리를 계속 사용할 수 없습니다. Struts 2 태그 라이브러리를 사용하십시오. " 나는 struts1 액션이나 jsp를 바꿀 수 없다. 나는 그들을 그대로 사용해야합니다. – IonTichy

+0

맞습니다. 이것이 마이그레이션 방법입니다. 당신은 그것을했거나 두 프레임 워크를 함께 사용했지만 그렇게하지 않았습니다. –