Я работаю над простым Spring Boot MVC application
использованием Thymeleaf
.
Часть кода листа тимьяна:
<tr th:each="dept: ${departments}">
<td th:text="${dept.getId()}"></td>
<td th:text="${dept.getName()}"></td>
<td>
<form th:object="${dept}" th:action="@{'/departments/' + ${dept.getId()}}">
<button class="btn btn-secondary">Details</button>
</form>
</td>
<td>
<form th:object="${dept}" th:action="@{/departments/{id}/edit(id=${dept.getId()})}">
<button class="btn btn-secondary">Edit</button>
</form>
</td>
<td>
<form th:object="${dept}" th:action="@{/departments/{id}(id=${dept.getId()})}" th:method="delete">
<button class="btn btn-secondary">Delete</button>
</form>
</td>
</tr>
Интерфейс пользовательского интерфейса выглядит следующим образом:
При нажатии на кнопку Edit
(то же самое и с Details
) загружается корректно, но URL генерирует символ ?
для других параметров запроса, а их на самом деле нет (например http://localhost:8089/departments/3/edit?
).
Код контроллера:
@GetMapping("/{id}/edit")
public String editDepartment(@PathVariable("id") String departmentId, Model model) {
var department = departmentService.getDepartmentById(Long.valueOf(departmentId));
model.addAttribute("department", department);
return "edit-department"; // returns view
}
Моя проблема связана с отображаемым символом ?
. Я не хочу, чтобы он отображался, так как нет параметров запроса. Любая помощь?
Пытаться
<form th:object="${dept}" th:action="@{/departments/edit/{id}(id=${dept.getId()})}">
Это добавление вопроса ?
, потому что вы отправляете пустую форму. Почему бы просто не использовать ссылку в виде кнопки?
<a class="btn btn-secondary" th:href="@{/departments/{id}/edit(id=${dept.id})}" role="button">Edit</a>
Да, похоже, это обходной путь
Нет, такое же поведение