Кнопка Spring html отвечает с ошибкой 404

Моя проблема в том, что кнопка отправки под формой должна перенаправлять регистрирующегося пользователя на страницу приветствия после ее нажатия.

Пока что кнопка хочет перенаправить на "welcome.html", но у меня постоянно вылетает ошибка 404, чего я не понимаю.

Welcome-html не делает ничего особенного, просто текст приветствия.

Мой контроллер выглядит следующим образом:

package user;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.ModelAttribute;

import org.springframework.web.bind.annotation.PostMapping;

@Controller 
public class UserController {
    @Autowired private  UserRepository users;
    @Autowired private  UserManagement UserManager;
        
    
    @GetMapping("/")
    public String register(Model model, RegistrationForm form) {
        System.out.println("Homepage");
        model.addAttribute("form", form);
    return "register";
    }
    
    @PostMapping("/register")
    public String submit(@ModelAttribute("user")User user, RegistrationForm form,
                        Model model) {
        User newUser = UserManager.createUser(form);
        model.addAttribute("name", newUser.getAccount().getUsername());
        model.addAttribute("street", newUser.getStreet());
        model.addAttribute("PLZ", newUser.getPLZ());
        model.addAttribute("mail", newUser.getMail());
        model.addAttribute("number", newUser.getPhoneNumber());
        users.save(newUser);
    return "redirect:/welcome";
    }
}
`

the register-page functions alright and the button too:

<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring4-4.dtd">
    <html  xmlns:th = "http://www.thymeleaf.org">
        <head>
            <meta http-equiv = "content-type" content = "text/html; charset=UTF-8"/>
            <link rel = "stylesheet" type = "text/css" th:href = "@{/resources/css/style.css}" href = "../static/resources/css/style.css"/>
            <title>register</title>
        </head>
        <body>
        <header id  = "mainHeader">
        <div class  = "container">
                <h1>ClownCollege</h1>
        </div>
        </header>
        
        
        <nav id = "mainNav">
            <div class = "container">
                <ul>
                    <li><a href = "">Startseite</a>
                    <li><a href = "">Angebote</a>
                    <li><a href = "">Login</a>
                </ul>
            </div>
        </nav>
        
        <div id = "register">
            <h2>Registrierung</h2>
                <form  modelAttribute = "form" method  = "post" th:object=${form}>
                <input type = "text" field  = "*{name}" />
                <input type = "text" field  = "*{street}"/>
                <input type = "text" field  = "*{PLZ}"/>
                <input type = "text" field  = "*{mail}"/>
                <input type = "text" field  = "*{number}"/>
                <input type = "text" field  = "*{password}"/>
                </form>         
                <a href  = "welcome.html"> <button type  = "submit">registrieren</button></a>
              
        </div>
        </body>
    </html>

[исходные папки для поиска пути]

У вас нет кнопки, у вас есть ссылка... Удалите ссылку вокруг кнопки.

M. Deinum 10.05.2022 19:32
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
1
23
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  1. Пожалуйста, добавьте action = "register" к <form>. Он указывает, куда отправляется форма после отправки.
  <form action = "register"  modelAttribute = "form" method  = "post" th:object=${form}>
  1. Удалить <a href = "welcome.html">. Поскольку ваш контроллер имеет оператор перенаправления return "redirect:/welcome";, html-ссылка не нужна.

Это должно работать так, как вы ожидаете.

Это помогло в первой половине, я полагаю, модификатор действия отсутствовал, но мне также не хватало геттера для другой html-страницы. Итак, теперь кнопка перенаправляется, как и предполагалось, но все мои значения формы равны нулю, поэтому привязка все еще неверна... если мне понадобится дополнительная помощь, я задам еще один вопрос, спасибо за быструю помощь

FuriousSponge 11.05.2022 21:57

Другие вопросы по теме