سؤال

أنا أعمل على تطبيق الويب الذي يجب التحقق من صحة التاريخ قبل حفظه في ديسيبل.لذلك أنا أحاول استخدام لهذا الربيع مفك المصادقة.لكن لدي مشكلة في أن النموذج لا يظهر رسالة خطأ.

المستخدم الخاص بي.جسب:

<form:form class="editUser" method="POST" commandName="user">
    <form:input path="email"/>
    <form:errors path="email"/>
    other fields
</form>

بلدي تحكم:

@RequestMapping(value = "/user/save", method = RequestMethod.POST)
public String save(@Valid @ModelAttribute("user") final User user,
        BindingResult result) throws Exception
{
    if (result.hasErrors()) {
        return "redirect:/addUser";
    } else {
        handler.saveUser(user);
        return "redirect:/userList";
   }
}

فئة المستخدم الخاصة بي:

public class User {
    @NotEmpty(message = "Please enter your email addresss.")
    private String email;

    other fields
}

بقدر ما أرى في نتيجة وضع التصحيح تحتوي على خطأ إذا قمت بإرسال بريد إلكتروني فارغ ، لكنه لا يظهر خطأ في الصفحة.يمكن لبعض واحد مساعدتي?

تحديث: لقد حاولت استخدام RedirectAttributes, ، لكنها لا تزال لا تعمل.

بلدي تحكم:

public String save(@Valid @ModelAttribute("user") final User user,
        BindingResult result) throws Exception
{
    if (result.hasErrors()) {
        redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.user", result);
        redirectAttributes.addFlashAttribute("errors", result.getAllErrors());
        redirectAttributes.addFlashAttribute("user", user);
        return "redirect:/addUser";
    } else {
        handler.saveUser(user);
        return "redirect:/userList";
   }
}
هل كانت مفيدة؟

المحلول

لا تفعل redirect في حالة فشل التحقق من الصحة.

نموذج التعليمات البرمجية:

public String save(@Valid @ModelAttribute("user") final User user,
        BindingResult result) throws Exception
{
    if (result.hasErrors()) {
        return "addUser";
    } else {
        handler.saveUser(user);
        return "redirect:/userList";
   }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top