【问题标题】:Field select error thymeleaf selector binding字段选择错误 thymeleaf 选择器绑定
【发布时间】: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页面吗?

标签: java hibernate spring-boot jpa thymeleaf


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2015-01-25
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    相关资源
    最近更新 更多