1. 程式人生 > >EL1043E: Unexpected token. Expected 'rparen())' but was 'lcurly({)'

EL1043E: Unexpected token. Expected 'rparen())' but was 'lcurly({)'

<div class="form-group" th:if="${not #strings.isEmpty(stu)}">
    <label class="col-sm-1 control-label">生日</label>
    <div class=" col-sm-4">
        <input type="date" class="form-control" placeholder="生日" name="birth"
               th:value="${#dates.format(${stu.birth},'yyyy-MM-dd')}"
> </div> </div>

紅色標記為出錯程式碼,也就是時日格式化的時候,報錯了,報錯的完整程式碼為:

Caused by: org.springframework.expression.spel.SpelParseException: Expression [#dates.format(${stu.birth},'yyyy-MM-dd')] @15: EL1043E: Unexpected token. Expected 'rparen())' but was 'lcurly({)'

英語不好,錯誤都看不懂啥意思

'rparen())'

'lcurly({)'

我可以理解為括號裡分別是一個右括號和一個左大括號嗎?

..............我不瞎扯了

修改方法為

在Controller裡給你需要轉換的日期賦值給一個變數,直接轉化這個變數就可以

我的Controller

/*
跳轉到修改考生資訊頁面
 */
@GetMapping("/updstu/{id}")
public String updStu(@PathVariable("id") int id, Model model) {
    System.out.println("編輯的id:" + id);
    User user = userService.findUserbyId(id);
    model.addAttribute("stu", user);
    model.addAttribute("birth", user.getBirth());
return "admin/addStudent"; }

然後 html頁面的程式碼就變成這樣了

<div class="form-group" th:if="${not #strings.isEmpty(stu)}">
    <label class="col-sm-1 control-label">生日</label>
    <div class=" col-sm-4">
        <input type="date" class="form-control" placeholder="生日" name="birth"
               th:value="${#dates.format(birth,'yyyy-MM-dd')}">
    </div>
</div>