سؤال

لدي السؤال التالي: أحتاج إلى اجتياز معلمة (على سبيل المثال معرف) عندما أقوم بإنهاء نموذج وإجراء حفظ قيم النموذج، سيقوم هذا إلى الأمام إلى النتيجة = "النجاح" وأحتاج إلى أن يكون الإجراء الذي سيتم الاتصال به في النجاح، تأتي مع الهوية وغيرها من المعلمات للاستخدام لاحقا في النموذج التالي لحفظ هذه المعلومات (info-form2 و info.form1) ...

علي سبيل المثال:

Form1 (المستخدم) ==== "النجاح" ====> Form2 (العنوان)

UserForm.html ===================> AddressForm.html؟ الطريقة: NEWADDRESS))

من فضلك سأقدر مساعدتك

شكرا لك مقدما

هل كانت مفيدة؟

المحلول

لقد استخدمت كلمة "إلى الأمام" ولكن يبدو أنك تريد الذهاب إلى صفحة جديدة (العنوان .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} GetUserID على استعدادك وتمرير هذه المعلمة كما تظهر في سؤالك: UserForm.html؟ user_id = x. يمكن أن يكون لجمع عنوان النجاح الذي يذهب إلى orderform.html. مستندات هنا. إذا كنت ترغب في تجنب استخدام إجراء آخر، فيمكنك أن تجرب باستخدام نوع النتيجة = "إعادة توجيه" وتمرير الأشياء من خلال بهذه الطريقة.

إذا كنت تريد حقا إلى الأمام، يمكنك استخدام العمل السلاسل. وبعد هذا هو تثبيط تيد الوشد على فريق struts2 لكن قد تعمل من أجلك.

بدلا من إجراءات الحركة، حاول إحضار جميع التعليمات البرمجية لإكمال هذا الطلب إلى إجراء واحد واستخدام فئات المساعدة أو الخدمة للمستخدم وعنوانها لفصل الرمز وإعادة استخدامه بدلا من "التنزز".

نصائح أخرى

ليس واضحا جدا ما تريد القيام به.

يبدو وكأنه بعد تنفيذ نجاحي للعمل، يتم إرسال الطلب إلى إجراء آخر. في الإجراء الأول الذي تريد تمرير معرف المعلمة واستخدام ذلك في الإجراء الثاني. نظرا لأن كلا الإجراءين يتم استخدامه في نفس الطلب، يمكنك حفظ معلمة الهوية حسب الطلب مثل هذا

طلب .Settribute ("ID"، idvalueObject)؛

في الإجراء الثاني، يمكنك استخراج قيمة المعرف مثل هذا

طلب. gettattrive ("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