سؤال

أحاول حاليا إعادة نموذج من Onsubmit () في جهاز التحكم الخاص بي. ثم أحاول استرجاع هذا في بلدي JSP.

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

Map model = new HashMap();
model.put("errors", "example error");
return new ModelAndView(new RedirectView("login.htm"), "model", model);

ثم استرجعها

<c:out value="${model.errors}"/>

لكن هذا لا يعرض أي شيء. يذهب إلى Redirectivity الصحيح ولا يصدر أي أخطاء، ولكن لا يتم عرض النص.

أي مساعدة سوف تكون محل تقدير كبير.

شكرا

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

المحلول

ما يقوم RedireCledview بإرسال رأس إعادة التوجيه إلى المتصفح حتى يقوم المتصفح بإعادة تحميل كاملة للصفحة، كطراز نتيجة لا يتم حملها هناك (كما يتم التعامل معها الآن عن طريق وحدة تحكم تسجيل الدخول باستخدام نموذجها الخاص).

ما يمكنك القيام به هو تمرير الأخطاء من خلال سمات الطلب:

في وجهات النظر الخاصة بك .properties:

loginController.(class)=org.springframework.web.servlet.view.InternalResourceView
loginController.url=/login.htm

ثم بدلا من إعادة توجيه إعادة التوجيه:

request.setAttribute("errors", "example errors");
return new ModelAndView("loginController");

وفي وحدة تحكم تسجيل الدخول الخاصة بك تحقق من هذه السمة وإضافتها إلى النموذج.

تحديث: بدون استخدام المشاهدات .properties:

request.setAttribute("errors", "example errors");
return new ModelAndView(new InternalResourceView("/login.htm"));

أو يمكنك إضافة محلل عرض داخلي (آخر) إلى التطبيق الخاص بك serveverlet.xml (ملاحظة من API: عند تسليح المشاعرات، يحتاج InternalResourceViewResolver دائما إلى أخيرا، حيث سيحاول حل أي اسم عرض، بغض النظر عما إذا كان المورد الأساسي في الواقع موجود.):

<bean id="viewResolver2"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
</bean>

ثم فقط استخدم:

request.setAttribute("errors", "example errors");
return new ModelAndView("/login.htm");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top