I promise, I have Googled the heck out of this.
I have a Spring MVC 4 app that uses Thymeleaf to collect form data and put it into a database. Works very well, exce
Hope this can helps the future readers. We can use th:replace to avoid the javascript/ajax. See example below.
@GetMapping("/admin-reload")
public String reloadElementDiv(Model model) {
AdminData ad = rep.findById(1L);
// If there is no configuration record, create one and assign the primary key as 1.
if(ad == null)
{
ad = new AdminData();
ad.setId(1L);
}
model.addAttribute("adminAttrib", ad);
return "adminForm";
}
Now, in the parent html (like home.html) you use the following. *This means replace this tag with the element with id="admin-div" from admin.html
<div th:replace="~{admin :: #admin-div}">
</div>
Then in a separate html file, place the fragment html code. Wherein in this example its admin.html.
<div id="admin-div">
<span th:text="${ad.id}"></span>
</div>
You can put a link/button to trigger to refresh the div element by using a th:href
<a href="" th:href="@{/admin-reload}"><span>Edit</span></a>
im using rest controller and ajax for handle this problem
So thymeleaf will render the page as a HTML and sends it to client to display, if you want to be able to submit form data to controller without changing pages you need to incorporate Javascript.
You definitely need to use javascript/ajax to post the form contents and keep the page as it is.
If you want to update just the section that contains the form for example what you can do is make a call to a controller method that returns a fragment and display the fragment containing the relevant form information.