Передача всего объекта из выпадающего списка пользователя с помощью Thymeleaf / Spring - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть объект, который содержит две строки (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 равно нулю.В какой-то момент я также получал ошибки преобразования строк, ошибки проверки и т. Д. Ничто из того, что я пробовал, не сработало, но ожидаемый результат - получить весь объект с именем и совпадающим идентификатором, который я получил из Списка объектов.

Заранее благодарю за любую помощь, которую вы можете оказать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...