Проверка формы загрузки пружины неправильно отображает сообщения об ошибках должным образомJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Проверка формы загрузки пружины неправильно отображает сообщения об ошибках должным образом

Сообщение Anonymous »

Введите описание изображения здесь Сообщения об проверке формы загрузки пружины, не отображающие, сохранение данных, несмотря на ошибки
и для деталей проблемы:
Моя форма включает поле имени со следующими ограничениями: < /p>
@NotBlank(message = "Name field should be required")
@Size(min = 2, max = 20, message = "Min 2 characters and max 20 characters allowed")
private String name;
Однако, когда я отправляю форму без ввода имени, сообщения проверки не отображаются. Вместо этого приложение продолжается с сохранением данных и бросает следующую ошибку: < /p>
Something went wrong! could not execute statement [Duplicate entry '' for key 'user.UKob8kqyqqgmefl0aco34akdtpe']
Вот мой метод контроллера:
@RequestMapping(value = "/do_register", method = RequestMethod.POST)
public String registerUser( @ModelAttribute("user")@Valid User user,BindingResult result,
@RequestParam(value = "agreement" ,
defaultValue = "false")boolean agreement,
Model model,HttpSession session)
{

try {

if(result.hasErrors()) {
System.out.println("Error "+result.toString());
model.addAttribute("user",user);
return "signup";
}

if(!agreement) {
System.out.println("You didn't accept the agreement");
throw new Exception("You didn't accept the agreement");
}

user.setRole("Role_User");
user.setEnabled(true);
user.setImageUrl("default.png");

System.out.println(agreement);
System.out.println(user);

User userResult = this.userRepository.save(user);

// return blank user
model.addAttribute("user",new User());
session.setAttribute("message", new Message("User successfully registered ! ","alert-success"));
return "signup";

// handling error here
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
model.addAttribute("user",user);
session.setAttribute("message", new Message("Something went wrong! "+e.getMessage(),"alert-danger"));
return "signup";

}

}
< /code>
Что я попробовал: < /h3>

[*] Проверка ). p>

Используется th: errors = "*{name}" для отображения ошибок.

проверял @valid < /code> правильно используется аннотация. < /p>
< /li>
< /ul>
Фронт-код < /p>


Your Name



Name error




Я попытался добавить аннотации валидации в моем объекте и использовал @valid с помощью BindingResult в моем контроллере. Я ожидал, что при отправке формы с пустым или недействительным именем будут отображаться сообщения о проверке, и форма не будет отправлена. Однако, вместо того, чтобы показывать сообщения об ошибках, форма проходит с подчинением, и я получаю исключение SQL из -за дубликата записи для пустого поля имени. < /P>
package com.ninja.entity;

import java.util.ArrayList;
import java.util.List;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;

@Entity
@Table(name = "User")
public class User {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;

@NotBlank(message = "Name field should be required")
@Size(min = 2, max = 20, message = "min 2 characters and max 20 characters allowed")
private String name;

@Column(unique = true)

private String email;

private String password;

private String role;
private Boolean enabled;
private String imageUrl;
@Column(length = 500)
private String about;

@OneToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY,mappedBy = "user") //cascade: if user deleted then all related contact related to user will be delete
private Listcontacts = new ArrayList();



Подробнее здесь: https://stackoverflow.com/questions/794 ... s-properly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»