문제

다음 질문이 있습니다. 양식을 완료하고 액션이 양식의 값을 저장할 때 매개 변수 (예 : ID)를 전달해야합니다. 결과 = "성공"으로 전달됩니다. 성공에는이 정보를 저장하기 위해 다음 양식 (Info-Form2 및 Info.form1)을 위해 다음 양식에서 나중에 사용할 ID 및 기타 매개 변수가 제공됩니다.

예를 들어:

form1 (user) ==== "성공"====> form2 (주소)

userform.html ============================================================================================================================================================================= user_id = x ... 방법 : NewAddress))

도움을 주셔서 감사합니다

미리 감사드립니다

도움이 되었습니까?

해결책

"Forward"라는 단어를 사용했지만 주소에 대한 자세한 정보를 수집하기 위해 새 페이지 (address.html)로 이동하고 싶은 것처럼 들립니다. 이 경우 사용자 작업이 완료된 후 주소 페이지로 리디렉션해야합니다.

<action name="user" class="UserAction">
  <!-- Redirect to another namespace -->
  <!-- for Struts 2.2 --> <result type="redirectAction">
  <!-- for Struts 2.0 <result type="redirect-action"> -->
    <param name="actionName">collect-address</param>
    <param name="userId">${userId}</param>
  </result>
</action>

$ {userID} 구문은 사용자 ActionAction에서 getUserId를 호출하고 귀하의 질문에 표시된대로 해당 매개 변수를 전달합니다 : assedform.html? user_id = x. Collect-Address는 TressDform.html로 이동하는 성공적인 결과를 가질 수 있습니다. 여기 문서. 다른 조치 사용을 피하려면 시도 할 수 있습니다. 결과 유형 사용 = "리디렉션" 그런 식으로 물건을 전달합니다.

정말로 전달하고 싶다면 사용할 수 있습니다. 액션 체인. 이것은 Ted가 Struts2 팀에서 낙담했습니다 그러나 그것은 당신에게 효과가있을 수 있습니다.

액션 체인 대신 모든 코드를 가져와이 요청을 단일 작업으로 완료하고 사용자 및 주소를 위해 도우미 또는 서비스 클래스를 사용하여 "액션 체인"대신 코드를 분리하고 재사용하십시오.

다른 팁

당신이 무엇을하고 싶은지 명확하지 않습니다.

조치를 성공적으로 실행 한 후에는 요청이 다른 조치로 전달됩니다. 첫 번째 조치에서는 매개 변수 ID를 전달하여 두 번째 작업에서 사용하려고합니다. 동일한 요청 호출에서 두 작업이 모두 사용되므로 요청에 따라 ID 매개 변수를 저장할 수 있습니다.

request.setattribute ( "id", idvalueobject);

두 번째 조치에서는 이와 같이 ID의 값을 추출 할 수 있습니다.

request.getAttribute ( "id");

이것은 작동해야합니다 :

  <!--  Package Default -->
    <package name="**default**" extends="struts-default,json-default" namespace="/">
        <action name="noOp" class="com.web.myapp.action.NoOpAction">
           <result name="success" type="chain">
                    <param name="requiresValidation">true</param>
                    <param name="actionName">userAuthentication</param>
                    <param name="namespace">/user</param>
          </result>
        </action>   
    </package>
    <!--  Package User -->
    <package name="user" extends="struts-default,json-default" namespace="/user">
    <action name="userAuthentication" class="com.web.myapp.action.AuthenticateAction">
    ...
    </action>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top