SpringBoot + Thymeleaf: подтвердить адрес электронной почтыJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 SpringBoot + Thymeleaf: подтвердить адрес электронной почты

Сообщение Anonymous »

У меня есть этот объект:
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class NatalChartDataPayload {
String langCode;
@NotEmpty(message = "Email cannot be empty")
@Email(message = "Invalid email format")
String email;
String city;
String place;
}

и этот контроллер:
@GetMapping({"/data"})
public String data (Model model) {
model.addAttribute("months", Month.values());
model.addAttribute("data", NatalChartDataPayload.builder().build());
return "natalChartData";

}

@PostMapping("/create")
public String createNatalChart ( @Valid @ModelAttribute NatalChartDataPayload data, BindingResult result, Model model) {

if (result.hasErrors()) {
return "natalChartData";
}

User user = new User();

user.setEmail(data.getEmail());

if (data.getPlace()==null ||
data.getPlace().isEmpty() ||
data.getEmail()==null ||
data.getEmail().isEmpty()) {
return "redirect:/natalchart/data";
}
..

но если адрес электронной почты неправильный, у меня возникает такая ошибка:
... 124 common frames omitted
2024-04-20 06:46:32.854 ERROR [] o.a.c.c.C.[.[.[.[dispatcherServlet]@log(175) - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/natalChartData.html]")] with root cause
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'data' available as request attribute
at org.springframework.web.servlet.support.BindStatus.(BindStatus.java:153)
at org.springframework.web.servlet.support.RequestContext.getBindStatus(RequestContext.java:926)
at org.thymeleaf.spring6.context.webmvc.SpringWebMvcThymeleafRequestContext.getBindStatus(SpringWebMvcThymeleafRequestContext.java:232)
at org.thymeleaf.spring6.util.FieldUtils.getBindStatusFromParsedExpression(FieldUtils.java:306)
at org.thymeleaf.spring6.util.FieldUtils.getBindStatus(FieldUtils.java:253)
at org.thymeleaf.spring6.util.FieldUtils.getBindStatus(FieldUtils.java:227)
at org.thymeleaf.spring6.util.FieldUtils.checkErrors(FieldUtils.java:212)
at org.thymeleaf.spring6.util.FieldUtils.hasErrors(FieldUtils.java:71)
at org.thymeleaf.spring6.expression.Fields.hasErrors(Fields.java:58)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
}


Подробнее здесь: https://stackoverflow.com/questions/783 ... date-email
Ответить

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

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

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

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

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