powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Sring: не показывает тот же view после ошибки в BindingResult
11 сообщений из 11, страница 1 из 1
Sring: не показывает тот же view после ошибки в BindingResult
    #39364409
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
страница регистрации доступна (и работает) по адресу
http://localhost:8080/alphasoft/register
где register - это register.jsp

однако после обнаружения ошибок в контролере отображает пустой экран вместо исходной страницы
Код: java
1.
2.
3.
4.
5.
if (result.hasErrors()) {
	System.out.println("there were some errors right here");
        return "register";//отобразит пустой экран - ошибок нет
        //return "login"; //а это будет работать
}



почему так?
...
Рейтинг: 0 / 0
Sring: не показывает тот же view после ошибки в BindingResult
    #39364449
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,

а Весь код контроллера можно увидеть?
...
Рейтинг: 0 / 0
Sring: не показывает тот же view после ошибки в BindingResult
    #39364457
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По факту - классический пример :

контроллера (книжный)

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
@Controller
@RequestMapping(value = {INFO_URL})
public class InfoController {

    public static final String INFO_URL = "/info";


  @RequestMapping(value = {"/create"}, method = RequestMethod.GET)
    public ModelAndView create(@RequestParam(value = "id", required = false, defaultValue = "0") Long id) {
        ModelAndView modelAndView = new ModelAndView(CREATE);
        modelAndView.addObject(....);
        modelAndView.addObject(....);
        return modelAndView;
    }

    @RequestMapping(value = {"/create"}, method = RequestMethod.POST)
    public RedirectView create(HttpServletRequest request, Model model, @Valid InfoForm infoForm, BindingResult bindingResult, RedirectAttributes redirectAttrs) {

        RedirectView redirectView = new RedirectView();

        if (bindingResult.hasErrors()) {
            redirectAttrs.addFlashAttribute("errorMessage",            bindingResult.getFieldErrors().stream().map(FieldError::getDefaultMessage).collect(joining(", ")));
            redirectView.setContextRelative(true);
            redirectView.setUrl(request.getRequestURI());
        } else {

            Info info = new Info(infoForm);
            lawInfo = infoService.save(info);
            String url = HtmlHelper.infoToUrlConverter(info);

            redirectView.setUrl(url);
        }
        return redirectView;

    }
...
Рейтинг: 0 / 0
Sring: не показывает тот же view после ошибки в BindingResult
    #39364459
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://javastudy.ru/spring-mvc/spring-mvc-pattern-prg-postredirectget/

так более понятно ...

с переходом между post и get
...
Рейтинг: 0 / 0
Sring: не показывает тот же view после ошибки в BindingResult
    #39364558
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Atum1,
помог редирект.
если я правильно понял, то использование BindingResult реализует паттерн PRG,
и т.о. из метода hasErrors() можно отправить только редирект на туже страницу?
...
Рейтинг: 0 / 0
Sring: не показывает тот же view после ошибки в BindingResult
    #39365286
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
оказывается ошибка есть, в консоли браузера выдает - 405 (Method Not Allowed)
...
Рейтинг: 0 / 0
Sring: не показывает тот же view после ошибки в BindingResult
    #39365296
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в форме на jsp стоит метод POST, который обращается к processRegistration(), тогда что значит эта ошибка - 405 (Method Not Allowed) ?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
@Controller
@RequestMapping(value = "/register")
public class RegisterController {

	@RequestMapping(method = RequestMethod.GET)
	public String viewRegistration(Map<String, Object> model) { ... }

       @RequestMapping(method = RequestMethod.POST)
	public String processRegistration(
			@Valid @ModelAttribute("userForm") UserModel user, 
			BindingResult result, 
			Map<String, Object> model) {
		
		if (result.hasErrors()) {
			return "register";
        }
		
		...
	}
...
Рейтинг: 0 / 0
Sring: не показывает тот же view после ошибки в BindingResult
    #39365540
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174в форме на jsp стоит метод POST, который обращается к processRegistration(), тогда что значит эта ошибка - 405 (Method Not Allowed) ?
То и означает. Что по указанному URL сервер не обрабатывает POST запросы. Какой точно URL в консоли браузера?
...
Рейтинг: 0 / 0
Sring: не показывает тот же view после ошибки в BindingResult
    #39365596
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

автор http://localhost:8080/alphasoft/register

там же разница только в get-post
...
Рейтинг: 0 / 0
Sring: не показывает тот же view после ошибки в BindingResult
    #39369286
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
такое же точно:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
@Controller
@RequestMapping(value = "recover")
public class RecoverController {

    @RequestMapping(method = RequestMethod.GET)
    public String recoverPage(Map<String, Object> model) {
        return "recover"; //this works
    }

    @RequestMapping(method = RequestMethod.POST)
    public String recover(Map<String, Object> model) {
        System.out.println("_____________recover in action");
        return "home"; //error 405
    }



Код: java
1.
<form name='recoverForm' action="<c:url value='recover'/>" method='POST'>



ошибка при отправлении формы

авторRequest method 'POST' not supported

...
Рейтинг: 0 / 0
Sring: не показывает тот же view после ошибки в BindingResult
    #39369302
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как оказалось, посоны, дело было в csrf, где нужно было из формы отправлять скрытый токен
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Sring: не показывает тот же view после ошибки в BindingResult
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]