Я нашел ответ,
дает то, что я хотел - преобразуется в http://localhost: 8080 / subject / delete Теперь я могу удалить много дублирующихся html
У меня есть много похожих страниц (студенты, аудитории, предметы и т. Д. c), которые имеют те же функции: добавление, удаление, поэтому мне пришлось использовать очень похожие способы добавления / удаления, подобные этим:
<div th:fragment="addModal" class="modal fade" id="addModal" tabindex="-1" role="dialog" aria-hidden="true">
<form th:action="@{/students/add}" //this line is choosing which controller to call (my old version)
<form th:action="@{__${#httpServletRequest.requestURI}__/add}" //new version (now I can use same modal for different pages)
method="post">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">New</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<label for="name" class="col-form-label">Enter name:</label>
<input type="text" class="form-control" id="name" name="name">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Save</button>
</div>
</div>
</div>
</form>
</div>
А это класс контроллеров (контроллеры для других объектов очень похожи):
@Controller
@RequestMapping(value = "/subjects")
public class SubjectController {
@Autowired
SubjectService subjectService;
@GetMapping("/")
public String getAll(Model model) {
model.addAttribute("subjects", subjectService.getAll());
return "subjects";
}
@PostMapping("/add")
public String add(Subject subject) {
subjectService.add(subject);
return "redirect:/subjects/";
}
@PostMapping("/delete")
public String delete(Subject subject) {
subjectService.delete(subject);
return "redirect:/subjects/";
}
}