Ich verwende SpringBoot mit Thymeleaf, um ein triviales Beispiel zu erstellen, das mir hilft, die beiden Technologien zu lernen.Thymoleaf mit SpringBoot - wie man das Modell schleift und löscht?
ich mein Beispiel auf THIS GUIDE
Das Unternehmen am stützen ist ein Gruß, die eine Identifikation und einen Inhalt hat.
Ich erstelle den Gruß ganz gut, und ich kann alle Grüße auflisten, die ich erstellt habe.
Ich wollte dann eine Löschoption für jede Gruß auf der Listenseite hinzufügen. Wenn ich auf Löschen klicke, möchte ich, dass das Objekt gelöscht und die Listenseite erneut angezeigt wird.
Ach, wenn ich die Liste Seite laden bekomme ich diesen Fehler:
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'greeting' available as request attribute
-Controller und respository Objekte
@Controller
public class GreetingController {
@Autowired
GreetingRepo gr;
@RequestMapping(value="/greeting/list", method=RequestMethod.GET)
public String greetingsForm(Model model) {
model.addAttribute("greetings", gr.findAll());
return "greeting/list";
}
@RequestMapping(value="/greeting/delete", method=RequestMethod.POST)
public String deleteGreeting(@ModelAttribute("greeting") Greeting greeting) {
gr.delete(greeting);
return "redirect:/greeting/list";
}
}
@RepositoryRestResource
interface GreetingRepo extends JpaRepository<Greeting, Long> {
}
list.html Seite:
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Getting Started: Handling Form Submission</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Result</h1>
<div th:each="greeting : ${greetings}">
<p th:text="'id: ' + ${greeting.id}" />
<p th:text="'content: ' + ${greeting.content}" />
<form action="#" th:action="@{/greeting/delete}" th:object="${greeting}" method="post">
<input type="hidden" th:field="*{id}"/>
<input type="hidden" th:field="*{content}"/>
<input type="Submit" value="Delete"/>
</form>
</div>
<a href="/greeting/add">Add another</a>
<a href="/greeting/list">Show All</a>
</body>
</html>
Würde appre ziehe einen Schub in die richtige Richtung :-)
Dank Hasitha, dies ging über den Fehler, aber das Grußobjekt wird nicht instanziiert, wenn es in der Löschmethode des Controllers ankommt. I.e. Die ID ist immer 0 trotz was ich anklicke. Ich bin auch neugierig, warum ich ein leeres Objekt zum Modell hinzufügen müsste, wenn das reale Objekt bereits im Modell ist? I.e. das 'gruß ** s **' Objekt ist eine Liste, die alle 'gruß' Objekte enthält. Ich dachte, ich wäre in der Lage, die aktuelle Iteration (Begrüßung) Variable in der verschachtelten Löschform zu verwenden? – MooMoo