У меня есть объект, который содержит две строки (ID и имя).Я заполняю список двумя записями, которые содержат идентификаторы и имена.Затем я передаю это на HTML-страницу, используя Thymeleaf.Я хочу, чтобы пользователь выбрал значение из выпадающего списка.В раскрывающемся списке отображается только имя, и когда пользователь нажимает кнопку «Отправить», я хочу, чтобы он возвращал выбранный экземпляр объекта как с именем, так и с идентификатором.
Например, пользователь выбирает объект. Имя -следующее сопоставление получает object.Name и object.ID, чтобы я мог заполнить следующую страницу на основе этих данных.
Я пробовал почти каждый пример, который можно найти в Google, и ни один из примеров действительно не кажетсячтобы соответствовать тому, что я пытаюсь сделать, или, возможно, я был / был почти там и пропустил что-то крошечное.В какой-то момент я попытался создать еще один контейнер для объекта и использовал th: field = * {object} с th: object = $ container.
Пожалуйста, имейте в виду, что я изменил сопоставления на Post,используется ModelAttribute, Request и т. д.
Это текущая итерация кода:
Контроллеры:
@GetMapping(value="/reports")
public String selectRelease(Model model){
DBFunctions dbFunctions = new DBFunctions();
List<TFSQueryStructure> releaseNames = new ArrayList<>();
TFSQueryStructure tfsQueryStructure= new TFSQueryStructure();
ResultSet rs = dbFunctions.executeQuery(ReportingQueries.returnQueryName());
TFSQueryStructure tfsQueryStructures;
try {
while(rs.next()){
tfsQueryStructures = new TFSQueryStructure();
tfsQueryStructures.setID(rs.getString("ReleaseID").trim());
tfsQueryStructures.setName(rs.getString("AutomationRelease").trim());
releaseNames.add(tfsQueryStructures);
}
}catch(Exception e){}
model.addAttribute("releaseNames", releaseNames);
model.addAttribute("tfsQueryStructure", tfsQueryStructure);
return "reports";
}
@GetMapping("/createreport/view")
public String retrieveReportingDataDataReview(@RequestParam("TFSQueryStructure") TFSQueryStructure tfsQueryStructure, Model model) {
String releaseID = tfsQueryStructure.getID();
String releaseName = tfsQueryStructure.getName();
<body>
<div class="container">
<!--/*/ <th:block th:include="fragments/header :: header"></th:block> /*/-->
</div>
<form action="#" class="form-horizontal" id="form" th:action="@{/web/createreport/view}" th:object="${tfsQueryStructure}" method="get">
<div class="form-group">
<label class="col-md-4 control-label" for="releaseName">Release Name:</label>
<div class="col-md-4">
<select id="releaseName" name="releaseName" class="form-control">
<option value="">Select Release</option>
<option th:each="releaseName: ${releaseNames}" th:value="${releaseName}" th:text="${releaseName.getName()}"></option>
</select>
</div>
</div>
<!-- Button (Double) -->
<div class="form-group">
<label class="col-md-4 control-label" for="submit"></label>
<div class="col-md-8">
<button id="submit" type="submit" class="btn btn-success">Submit</button>
</div>
</div>
Мне удалось получить много результатов -чаще всего это значение для tfsQueryStructure равно нулю.В какой-то момент я также получал ошибки преобразования строк, ошибки проверки и т. Д. Ничто из того, что я пробовал, не сработало, но ожидаемый результат - получить весь объект с именем и совпадающим идентификатором, который я получил из Списка объектов.
Заранее благодарю за любую помощь, которую вы можете оказать!