如何通过胸腺叶访问html文件中的可选值?

2022-04-12 00:00:00 spring crud java thymeleaf

由于可选值的原因,访问出现问题

@RequestMapping("fruitDetail/{id}")
public String fruitDetail(@PathVariable("id") int batchId, Model model, Principal principal) {
    if(principal != null) {
        String username = principal.getName();
        User user = userService.findByUsername(username);
        model.addAttribute("user", user);
    }

    Optional<Batch> batch = batchService.findById(batchId);

    model.addAttribute("batch", batch);

    List<Integer> qtyList = Arrays.asList(1,5,10,20,30,40,50,60,70,80,90,100);


    model.addAttribute("qtyList", qtyList);
    model.addAttribute("qty", 1);

    return "fruitDetail";
}

在html文件中,我得到了如下内容

<input hidden="hidden" th:field="*{batch.batchId}"/>
在类型为的对象上找不到属性或字段‘BatchID’ ‘java.util.Optional’-可能不是公共的或无效的?

当我没有可选值时,如下所示:{Batch.BatchId}正在工作 如何访问此值?


解决方案

无法调用Optional,可以尝试以下选项:

model.addAttribute("batch", batch.get());

OR

<input hidden="hidden" th:field="*{batch.get().batchId}"/>

相关文章