【发布时间】:2018-10-30 11:08:46
【问题描述】:
我有一个对象列表和多个下拉列表。我想显示列表中的数据。但我的问题是我不想拥有这样的东西:
例如:我不想在下拉文件名中出现两次:
文件 1 文件 1 文件2 文件 3 文件 3我只想拥有:file1, file2, file3
这是我将列表放入模型的控制器
@GetMapping("/filter/functionality/misramessages")
public String filterFunctionality(Model model) {
model.addAttribute("misraMessages", misraMessagesService.findAllMisraMessagesFromDb());
return "functionality";
}
在 html 之后我这样做:
<!-- Filter File Name-->
<div class="form-group row">
<label for="fileName" class="col-sm-2 col-form-label">File Name</label>
<div class="col-sm-10">
<select class="form-control" name="file_name" id="fileName">
<option th:value="0" text="Please Select"></option>
<option th:each = "misra : ${misraMessages}"
th:value="${misra.fileName}"
th:text="${misra.fileName}">
</option>
</select>
</div>
</div>
<!-- Filter Message Number-->
<div class="form-group row">
<label for="messageNumber" class="col-sm-2 col-form-label">Message Number</label>
<div class="col-sm-10">
<select class="form-control" name="message_number" id="messageNumber">
<option th:value="0" text="Please Select"></option>
<option th:each = "misra : ${misraMessages}"
th:value="${misra.messageNumber}"
th:text="${misra.messageNumber}">
</option>
</select>
</div>
</div>
.......
.......
【问题讨论】:
-
有几种方法可以消除重复。您甚至可以尝试在数据库查询中消除它们,可能使用
DISTINCT关键字。您也可以使用 Java 在方法misraMessagesService.findAllMisraMessagesFromDb()中消除它们。你喜欢哪个?该方法看起来如何? -
很简单:@Override public List
findAllMisraMessagesFromDb() { return misraMessagesRepository.findAll(); } -
然后看看数据库查询。您应该能够消除那里的重复项。请参阅下面给出的答案。
标签: java spring spring-mvc spring-boot thymeleaf