#java #spring #spring-boot #spring-mvc
Вопрос:
в первых 4 операторах if , когда условие в нем истинно, атрибут addFlashAttribute добавляет ключ и строку в объект RedirectAttributes . но в моем случае это не так , из-за этого строка ниже
String error = (String) inputFlashMap.get("passwordError");
дает java.lang.Исключение NullPointerException.
полный код:
if(fName.length()==0){
redirectAttributes.addFlashAttribute("fnameError","First name cant be empty");
}if(lName.length()==0) {
redirectAttributes.addFlashAttribute("lnameError","Last name cant be empty");
}if(password.length()<=7) {
redirectAttributes.addFlashAttribute("passwordError","Password cant be empty neither be less than 8 characters");
}if(!matcher.matches()) {
redirectAttributes.addFlashAttribute("emailError","The Email entered is not accepted");
}
Map<String, ?> inputFlashMap = RequestContextUtils.getInputFlashMap(request);
System.out.println("Registration Form aint Right");
//below lies the error
String error = (String) inputFlashMap.get("passwordError");
System.out.println(error);
я сам проверил, работали ли 4 условия if или нет .это определенно работает, но атрибут addFlashAttribute не добавляет ключ и строку, связанные с ключом, в объект RedirectAttributes.из-за чего возникает исключение нулевого указателя . почему это происходит и как мне это исправить ?
Комментарии:
1. Вероятно, ваша карта inputFlashMap равна нулю?
2. @Сергей Васнев о, я только что проверил, распечатав строку : RequestContextUtils.getInputFlashMap(запрос); кажется, эта строка возвращает значение null. есть идеи, почему это может быть ? синтаксис кажется правильным.
Ответ №1:
Используйте : Атрибуты перенаправления.getFlashAttributes() вместо
RequestContextUtils.getInputFlashMap(request);