[Java][Spring Boot][Thymeleaf] Formularz dodawania do bazy?

Odpowiedz Nowy wątek
2020-04-06 18:38

Rejestracja: 5 miesięcy temu

Ostatnio: 4 miesiące temu

0

Cześć,
Zwracam się do Was z moją obecnie ogromną prośbą..
Potrzebuje zrobić prostego CRUD-a (a bardziej C i R) z wykorzystaniem Spring Boota.
Nigdy wcześniej nie miałem styczności ze Springiem, a zaś z samej Javy to tylko podstawy ogarniam (prosta obiektówka w konsolowych aplikacjach).

Ale już przechodząc do sedna:
Nie będę zamieszczać całego projektu - bo po co, przedstawię sprawę po krótce:

Mam taką tabelę (generowaną z klasy w pakiecie model wykorzystując

@Entity

tj.
Grades.class

Grades
Long id
Long grade
Long pupil
Long subject

Stworzyłem kontroler

GradesController.class

@Controller
public class GradesController {
    private GradesRepository gradesRepository;

    public GradesController(GradesRepository gradesRepository){
        this.gradesRepository = gradesRepository;
    }

@RequestMapping("/addGrade")
    public String addGrade(Model model) {
        Grades grades = new Grades();
        gradesRepository.save(grades);
        model.addAttribute("grades", gradesRepository.findAll());
        return "addGrade";
    }
}

oraz template

addGrade.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Add grade</title>
</head>
<body>
    <h1>Add grade:</h1>
    <form action="#" th:action="@{/addGrade}" th:object="${grades}" method="post">
        Grade<input type="number" th:field="*${grade}" />
        Pupil<input type="number" th:field="*${pupil}" />
        Subject<input type="number" th:field="*${subject}" />
        <input type="submit">
    </form>
</body>
</html>

Lecz niestety gdy przechodzę na localhost:8080/addGrade

to wyświetla mi się

title


Już naprawdę tracę siły.. przeglądam różne przykładowe aplikacje crud i wydaje mi się, że robię podobnie... ale jednak wychodzi na to że nie...

Czy byłby ktoś w stanie mi pomóc, powiedzieć co robię źle i doradzić co mógłbym zmienić?

Nie chce się poddawać, ale już spędziłem nad tym za dużo czasu.. o wiele za dużo

Z góry dziękuję za wszelką pomoc

edytowany 4x, ostatnio: WarsawBagdad, 2020-04-06 19:57

Pozostało 580 znaków

2020-04-06 21:11

Rejestracja: 4 lata temu

Ostatnio: 4 godziny temu

1

pod "grades" wrzucasz kolekcję obiektów, a nie jeden obiekt model.addAttribute("grades", gradesRepository.findAll());

Później odwołując się do pól np. tu th:field="*${grade}" szukasz pola grade w jakiejś kolekcji typu List<Grades> zamiast w obiekcie typu Grades


#define true (rand() % 2)
edytowany 1x, ostatnio: Grzyboo, 2020-04-06 21:12

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0