我有一个页面会在开始时显示一个数据表(来自数据库),我正在创建多个字段用于搜索/过滤目的。
我的控制器:
@RequestMapping(value = "/country", method = RequestMethod.GET)
public ModelAndView getCountryList(Model model) {
List<Country> countryList = countryService.getCountryList();
model.addAttribute("dateTime", todayDate());
model.addAttribute("pageTitle", "<a href=\"/pgwrefund\" />COUNTRY</a>");
return new ModelAndView("country", "countryList", countryList);
}
@RequestMapping(value="/filterCountry")
public ModelAndView getFilteredCountryList(@RequestParam String countrycode,@RequestParam String countryname,Model model){
List<Country> filteredCountryList = countryService.getFilteredCountryList(countrycode, countryname);
model.addAttribute("dateTime", todayDate());
model.addAttribute("pageTitle", "<a href=\"/pgwrefund\" />COUNTRY</a>");
System.out.println("List country:"+filteredCountryList.size() +"\nValue:"+ filteredCountryList);
return new ModelAndView("countrytemplate","filteredCountryList",filteredCountryList);
}
我的观点
<tbody>
<c:forEach var="country" items="${countryList}" varStatus="loopStatus">
<tr class="tbodydata ${loopStatus.index % 2 == 0 ? 'even' : 'odd'}">
<td>${country.countryCode}</td>
<td>${country.countryName}</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</c:forEach>
</tbody>
我的过滤表格视图:
<c:forEach var="country" items="${filteredCountryList}" varStatus="loopStatus">
<tr class="tbodydata ${loopStatus.index % 2 == 0 ? 'even' : 'odd'}">
<td class="firsttd">${country.countryCode}</td>
<td class="secondtd">${country.countryName}</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</c:forEach>
所以现在,我在这里做的是,首先我输入所有字段和过滤器的值。视图将值传递给控制器,它将使用查询进行过滤,并使用另一个表(foreach)返回到视图BUT。基本上,我用原始数据替换过滤后的数据。然后出现了问题,大多数功能都不起作用,包括更新和删除。我的目标是,我的国家/地区页面能够过滤表格数据并保持在同一页面。任何帮助将不胜感激。