我有一个包含两个字符串(ID和名称)的对象。我用两个包含ID和名称的条目填充列表。然后,我使用Thymeleaf将其传递给html页面。我希望用户从下拉列表中选择一个值。下拉列表仅显示名称,当用户单击“提交”时,我希望它返回具有名称和ID的对象的选定实例。
例如-用户选择object.Name-下一个映射将接收object.Name和object.ID,以便我可以根据此数据填充下一页。
我已经尝试了从Googling可以找到的几乎每个示例,但这些示例似乎都不符合我要尝试执行的操作,或者我已经/曾经去过那里并且错过了一些小东西。在某个时候,我尝试创建另一个容器来容纳对象,并使用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的值为null。在某些时候,我还遇到了字符串转换错误,验证错误等。我没有尝试任何方法,但是预期的结果是接收到整个对象,该对象具有从对象列表中获得的名称和匹配的ID。>
在此先感谢您提供的帮助!