字段选择错误 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 选择器绑定的主要内容,如果未能解决你的问题,请参考以下文章

保存字段日期选择器上的 JqGrid 错误

点击日期字段时如何调出日期选择器?

order by limit 造成优化器选择索引错误

jQuery-介绍 加载 选择器 样式操作 属性操作 绑定click事件

Element ColorPicker 颜色选择器绑定值value / v-model差异问题

xamarin 表单 - 与选择器的两种方式绑定 - 为啥我不能从后面的代码更新选择器?