JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Web Framework » Spring web MVC  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 有關ModelAttribute
sayNever





發文: 250
積分: 2
於 2017-10-03 08:53 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我有個修改頁面如下,
只提供name供修改。
1
2
3
--略
<input type="test" class="form-control" iid="name" name="name" value="${course.name}" placeholder="請輸入課程名稱" required>
--略

在頁面按下存檔按會進到底下method做存檔,
Course是個entity,
有uuid、name等屬性,
不過傳入的course參數,
只有name有值,
其他屬性都是null。
1
2
3
4
5
6
7
8
9
10
11
12
    @RequestMapping(value = "/saveOrUpdate", method = RequestMethod.POST)
    public String saveOrUpdate(ModelMap model, @ModelAttribute("course") Course course,
                               RedirectAttributes redirectAttributes) {
        try {
            this.service.saveOrUpdate(course);
            redirectAttributes.addFlashAttribute(PageInfo.ALERT, Message.MSG_SAVEORUPDATE_01);
        } catch (Exception e) {
            redirectAttributes.addFlashAttribute(PageInfo.ALERT, Message.MSG_SAVEORUPDATE_02);
        }
 
        return PageInfo.REDIRECT_COURSE_PAGE;
    }

如果像底下在頁面給hidden欄位,
傳入的course參數其他屬性就會有值。
我想請問的是有沒有其他方法,
就算不給hidden屬性,
傳入到controller 的method後,
還是可以keep住既有的值,
謝謝…。
1
<input type=hidden id="uuid" name="uuid"  value="${course.uuid}">


reply to postreply to post
且縱歇聲穿山去,埋此心情青松底,常棲息。
作者 Re:有關ModelAttribute [Re:sayNever]
kentyeh





發文: 641
積分: 6
於 2017-10-03 09:32 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
首先資料庫設計的部分,Course 應該要有一個surrogate key,
然後你應該設計一個Class extends java.beans.PropertyEditorSupport; (透過@InitBinder註冊)
在 setAsText(String text) 把鍵值從資料庫Query出Course,
例如你的 Service 可以透過surrogate key找出instance,
然後寫一個 assistant class 把進來的這個Course非Hiden 欄位的更新到這個Query出來的Instance後再存回去。

基本上 Web 最好保持 stateless ,要不然就得把Course存到Session(不是好方法)。


kentyeh edited on 2017-10-03 13:24
reply to postreply to post
» JWorld@TW »  Web Framework » Spring web MVC

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8