亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

提交表單時,帶有日期/時間的 Spring 為空

提交表單時,帶有日期/時間的 Spring 為空

叮當貓咪 2023-04-19 16:37:59
我的控制器中有兩個映射。這是一個 GET 映射:@RequestMapping(value="/items/book-list/edit", method = RequestMethod.GET)public String showEditBookPage(@RequestParam Long id, ModelMap model){    Book book = bookService.findBookById(id);    model.addAttribute("editForm", book);    LOG.info("Logged modified date once page is loaded: " + book.getModifyDate());    return "admin/book";}此映射僅用于顯示小窗體的 book.jsp 頁面。我還有另一個具有相同值但使用 POST 方法的映射,用于提交表單。 @RequestMapping(value="/items/book-list/edit", method = RequestMethod.POST)public String updateBook(@ModelAttribute("editForm") @Valid Book bookForm, BindingResult result, ModelMap model){    if(result.hasErrors()){        return "/admin/book";    }    LOG.info("Logged modified date before Save object: " + bookForm.getModifyDate());    LOG.info("Logged author before Save object: " + bookForm.getAuthor());    bookService.saveBook(bookForm);    LOG.info("Logged modified date after Save object: " + bookForm.getModifyDate());    LOG.info("Logged author after Save object: " + bookForm.getAuthor());    return "admin/book";}我的書.jsp:<form:form method="post" modelAttribute="editForm" >        <div class="row border py-4">            <div class="col-sm-6">                <spring:bind path="title">                    <div class="form-group">                        <form:label path="title" for="title">Book title</form:label>                        <form:input path="title" type="text" class="form-control" id="title" cssErrorClass="form-control border border-danger"/>                    </div>            </div>    </form:form>
查看完整描述

3 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

嘗試為該LocalDateTime字段顯式添加反序列化器:


@JsonDeserialize(using = LocalDateTimeDeserializer.class)  

@CreationTimestamp

@Column(name="create_date", updatable = false, nullable = false)

private LocalDateTime createDate;

還有你的反序列化類:


public class LocalDateTimeDeserializer extends StdDeserializer<LocalDateTime> {


    @Override

    public LocalDate deserialize(JsonParser jsonParser, DeserializationContext ctx)

            throws IOException, JsonProcessingException {

        // parse the String date into LocalDateTime object as it fits you

    }


}


查看完整回答
反對 回復 2023-04-19
?
UYOU

TA貢獻1878條經驗 獲得超4個贊

您忘記在 My book.jsp: 中添加 modify_date 字段,因為只有字段日期會發布,因為它是新請求,而您保存在模型中的所有舊字段都不會隨請求一起發布。所以有兩個選項添加輸入文本字段來更改日期。


或者您將在保存之前手動設置日期


 bookForm.setModifyDate(new Date());

 bookService.saveBook(bookForm); 

或者你也可以添加 @UpdateTimestamp 如果你想加侖本地日期和時間


@UpdateTimestamp

private LocalDateTime modifyDate;


查看完整回答
反對 回復 2023-04-19
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

@UpdateTimestamp

private LocalDateTime modifyDate;

這將完成工作


查看完整回答
反對 回復 2023-04-19
  • 3 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號