java 板


LINE

※ 引述《ek0424 ()》之銘言: : 各位板上的大大好,最近小弟在學習spring這個framework : 在開發過程中有遇到一個問題,在網路上尋找許久的資料還是無解 : 目前因為前端部分有大量的表單欄位要做格式驗證處理,所以我參考了 : http://www.mkyong.com/spring-mvc/spring-3-mvc-and-jsr303-valid-example/ : 但是卻發現有個問題如下: : 1.不用Form表單做的話,可以達到同樣的驗證效果嗎? 我沒用過這個功能 不過這點應該自己試一次就可以知道有沒有用了 如果不行的話 可以自己寫一個Mapping參數值到POJO的功能 再傳入另一個method 效果應該一樣 例如: // Mapping Customer customer = ReflectionUtil.mapping(request, Customer.class); // Do validation and insertion String view = this.doAddCustomer(customer); private String doAddCustomer(@Valid Customer customer); 不過我自己在做後端表單驗證都是自己寫 畢竟有些參數驗證還滿麻煩的 你可以試試用Spring的Interceptor 在進入Controller之前就做好驗證 並根據是否為ajax要求做不同的回應內容 如此一來你的驗證程式碼都會在固定的一包package裡面 (如controller.interceptor.validation) 還可以用spring的xml配置隨意更換而不用動到原始碼 : 2.如果我的Form表單想用Ajax處理,然後一樣有驗證效果該怎麼做? 有一個偷吃步的方法 就是將Form表單的target指定給一個隱藏的iframe 這樣就跟平常submit form的流程差不多了 只不過回應內容要另外處理 不然就把表單內容放在DIV裡 在iframe裡用parent.doReplaceForm($("div").html()); 應該也可以吧XD? 如果你是想將form表單直接由ajax的方式傳送參數 可以使用 $(document.formName).serialize(); 做為ajax的data參數值 即可傳送整張表單的所有欄位 : 3.因為練習接案子,對方要求要有API文件,然後用JSON格式作溝通 : 很多表單的東西,都不是傳JSON作處理,該怎麼改成都用JSON溝通? : 不知道有沒有大大有經驗,可以指點小弟一下。 後端的json處理我是使用google的gson套件 不知道你有沒有使用Maven <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.2.2</version> </dependency> 之後你只要在你的Data Bean加入以下method public String toJson(){ return new GsonBuilder().disableHtmlEscaping().create().toJson(this); } 就可以取得json格式的字串 到前端再使用jQuery parsing var json = $.parseJSON(jsonMessage); var status = json.status; var message = json.message; 當然有更簡單的方式 例如將dataType直接指定為json 其實JSON就是個格式化的字串 這樣想之後會簡單一點 就是字串傳來傳去嘛 哈哈哈 有物件解釋就夠了 以下是題外話 其實我不太推薦在view裡用太多的taglib或是什麼其他一大堆功能 基本上我的view裡面是迴圈居多 if else的判斷式盡量在後端就處理完 拿最簡單select element輸出做範例 大概會長這樣 <loop> <select> <option value=${value} ${selected}>$display</option> </select> </loop> 除了loop(偷懶一下)之外 其他都是設計師可以看懂的 或是不需要看懂也沒關係的 非必要的東西不寫在view裡 所以我套版完成後跟一開始設計師給的HTML原始碼差異都不大 若要改版面需要重新溝通、重新套版都很方便 用很多程式相關的標籤在view裡 反而失去MVC的本意了 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.166.88
1F:→ kiwatami:loop寫錯地方XD 懶得改了 那邊不是重點 02/15 22:19
2F:推 ek0424:感謝大大您的解說!感覺您的程式碼一定很精簡~學習了。 02/16 12:58
3F:推 ek0424:若有程式碼完整範例就更好了!XD 02/16 13:12
4F:→ kiwatami:沒那麼閒啦XD 02/16 23:44







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP