字段选择错误 thymeleaf 选择器绑定
Posted
技术标签:
【中文标题】字段选择错误 thymeleaf 选择器绑定【英文标题】:Field select error thymeleaf selector binding 【发布时间】:2020-01-13 12:58:45 【问题描述】:为什么 th:field=*platform 不起作用
我已尝试添加 th:field=*platform.platformId 但它仍然存在
这是错误
org.thymeleaf.exceptions.TemplateProcessingException: Error during execution of processor 'org.thymeleaf.spring5.processor.SpringSelectFieldTagProcessor' (template: "silicon" - line 343, col 47)
这是我的控制器
@PostMapping("/admin/siliconAdd")
public String addOrEditSilicon(@Valid @ModelAttribute(name="silicon") Silicon silicon,BindingResult placeValidation,
final RedirectAttributes redirectAttributes,HttpServletRequest request,Model model)
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
LOG.info(silicon.toString());
if(silicon.getPlatform().getPlatformId() == null)
silicon.setPlatform(null);
else
silicon.setPlatform(platformServiceImpl.getOne(silicon.getPlatform().getPlatformId()));
String messageString = null;
Date localDateToday = new Date();
try
if(silicon.getId() == null)
messageString = "inserted";
silicon.setDateAdmission(localDateToday);
silicon.setStatusSilicon("AVAILABLE");
silicon.setUserOwner(userServiceImpl.getOne(user.getUsername()));
if(silicon.getUserRequest() != null)
silicon.setStatusSilicon("ASSIGNED");
siliconServiceImpl.assignSiliconToUser(silicon.getUserRequest(), silicon.getId());
else
messageString = "updated";
Silicon siliconAddOrEdit = siliconServiceImpl.addOne(silicon);
model.addAttribute("silicons",siliconServiceImpl.getAll());
redirectAttributes.addFlashAttribute("success",messageString);
return "redirect:/admin/step2/" + siliconAddOrEdit.getPlatform().getPlatformId();
catch(Exception ex)
redirectAttributes.addFlashAttribute("error",messageString);
LOG.info(ex.toString());
return "redirect:/admin/silicon";
这是百里香部分
<select class="custom-select" th:field="*platform" id="platformCurrent">
<option value="">--Select Platform to Assign--</option>
<option th:each="platform : $platforms" th:value="$platform.platformId" th:utext="$platform.name"></option>
</select>
我该如何解决这个问题?
我想在不查阅数据库的情况下得到整个平台
【问题讨论】:
这个 thymeleaf 页面的名称是什么? 它被称为硅 你有GetMapping
在发布数据之前去silicon
页面吗?
【参考方案1】:
你可以试试这个
<select class="custom-select" id="platformCurrent" name="platformCurrent">
<optgroup label="">
<option th:each="platform : $platforms" th:value="$platform.platformId"
th:text="$platform.name"></option>
</optgroup>
</select>
【讨论】:
以上是关于字段选择错误 thymeleaf 选择器绑定的主要内容,如果未能解决你的问题,请参考以下文章
jQuery-介绍 加载 选择器 样式操作 属性操作 绑定click事件