Сейчас я работаю над приложением Spring, развернутым в Docker, с обратным прокси-сервером nginx и хочу получить доступ к поддомену через @GetMapping
& @PostMapping
.
Какой правильный способ доступа, например, субдомен /entity/add
?
Это ошибка кода или мой сервер неправильно настроен? Нужно ли что-нибудь еще, чтобы правильно рассмотреть эту проблему? Я с удовольствием добавлю это.
Я просмотрел официальную документацию, руководства, другие сообщения StackOverflow и т. Д., Но ни один из них, похоже, не работает.
Controller.java:
public class EntityController {
private Repository repository;
@ModelAttribute("entity")
public Entity newEntity() {
return new Entity();
}
// Overview.
@GetMapping("/entity")
public String index(Model model) {
final Iterable<Entity> all = repository.findAll();
model.addAttribute("all", all);
return "index";
}
// New entity.
@GetMapping("/entity/add")
public String loadAddPage(Model model) {
model.addAttribute("entity", new Entity());
return "add";
}
@PostMapping("/entity/add")
public String submitEntity(@Valid @ModelAttribute Entity entity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "add";
}
repository.save(entity);
return "redirect:/index";
}
index.html:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<title>Overview</title>
<meta charset="UTF-8" />
</head>
<body>
<div class="container">
<h2>Entities</h2>
<form action="/entity/add" method="get">
<input type="submit" value="New Entity"/>
</form>
<div class="content" th:each="entity: ${all}">
<h2 th:text="${entity.name}">Name</h2>
<form th:href="@{/entity/details?id={entityId}(entityId=${entity.id})}">
<input type="submit" value="Edit"/>
</form>
<!--<button><a th:href="@{/entity/update?entityId={entityId}(entityId=${entity.id})}"></a></button>-->
</div>
</div>
</body>
</html>
add.hmtl:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<title>New entity</title>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" />
</head>
<body>
<div class="container">
<form action="/entity/add" method="post" th:object="${entity}">
<table>
<tr>
<td><label for="name">Name</label></td>
<td><input id="name" type="text" th:text="Name" th:field="*{name}" /></td>
</tr>
</table>
</form>
</div>
</body>
</html>
Я ожидаю, что нажатие на /entity/add
-форму в index.html
правильно связывает меня с entity/add
, но оно просто отображает ошибку 404. То же самое с другими проверенными поддоменами.
Редактировать 01: Название обновлено. (доступ к поддоменам -> доступ к URL)