안녕하세요.행동에서 행동으로 전진
저는 struts 프레임 워크를 사용하여 웹 응용 프로그램을 개발 중입니다. 에서
if (user == "type_profile")
forward = mapping.forward("action2Fwd");
else
forward = mapping.forward("action3Fwd");
return forward;
: 사용자가 통화가 SecurityAction,이 작업은 두 작업 중 하나로 리디렉션 인 것으로 응용 프로그램을 처음 작업을 호출 할 때 간단한 방법으로 는이 내가 리디렉션을 어떻게 스트럿 - config.xml에 내가
<global-forwards>
<forward name="action2Fwd" path="/action2.do"/>
<forward name="action3Fwd" path="/action3.do"/>
</global-forwards>
<action path="/action2"
type="com.teste.dummy.action2"
name="actionForm"
validate="true"
input="/action2.jsp">
</action>
내 첫 번째 질문이있다 :이 다른 액션에 액션에서 리디렉션하는 가장 좋은 방법이 있나요?
두 번째 질문 : 다른 작업으로 리디렉션하면 actionForm이 실행됩니다.이 요청은 다른 작업에서 온 것임을 어떻게 알 수 있습니까?
양식 내부 요청이 다른 작업에서 오는 경우 어떤 것도 유효성을 검사하지 않으므로이 요청은 "브라우저"가 아닌 다른 작업에서 온다는 것을 알아야합니다. 한 가지 해결책은 이 요청이 다른 작업에서 온다는 것을 나타내는 요청 또는 세션 범위의 플래그이지만 이것이 가장 좋은 방법입니까?
그러나이 요청을 리디렉션 사람 찾을 수있는 방법이있다 :
<forward name="success" path="LoadProjectionCopyLOBAction.do" />
전진은 "성공"는 설정에서이 작업에 이르게 경우 설정 ? 비슷한 것 -> mapping.getWhoRedirect() – tt0686
@ tt0686 해당 정보를 양식 (또는 요청 등)에 넣음으로써. 같은 플래그를 사용하여 다른 액션에서 왔는지, 어떤 액션에서 왔는지 식별 할 수 있습니다. 나는 이것이 * 훌륭한 * 아키텍처라고 확신하지는 않지만 메커니즘은 건전합니다. 당신은 리퍼러를 사용하여 * 시도 할 수 있지만, 그렇습니다. –