當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
《SpringMVC数据绑定入门》笔记
生活随笔
收集整理的這篇文章主要介紹了
《SpringMVC数据绑定入门》笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基本類型
最好使用封裝類型
簡單多數據&多層級對象
簡單多數據
單個對象,直接使用屬性名=值即可
多層級對象
屬性.屬性=值即可
同屬性多對象
WebDataBinder只在當前類中生效,不是全局的
//TODO http://localhost:8080/object.do?user.name=Tom&admin.name=Lucy&age=10@RequestMapping(value = "object.do")@ResponseBodypublic String object(User user,Admin admin){return user.toString()+" "+admin.toString();}@InitBinder("user")public void initUser(WebDataBinder binder){binder.setFieldDefaultPrefix("user.");}@InitBinder("admin")public void initAdmin(WebDataBinder binder){binder.setFieldDefaultPrefix("admin.");}List、Set、Map類型的數據綁定
list
下標,最好是連續的,不然中間都是null
//TODO http://localhost:8080/list.do?users[0].name=Tom&users[1].name=Lucy&users[20].name=Jim @RequestMapping(value = "list.do") @ResponseBody public String list(UserListForm userListForm){return "listSize:"+userListForm.getUsers().size() + " " + userListForm.toString(); }public class UserListForm {private List<User> users;public List<User> getUsers() {return users;}public void setUsers(List<User> users) {this.users = users;}@Overridepublic String toString() {return "UserListForm{" + "users=" + users + '}';} }Set
主要是用來去除重復,初始化時,需要設置大小。
//TODO http://localhost:8080/set.do?users[0].name=Tom&users[20].name=Lucy @RequestMapping(value = "set.do") @ResponseBody public String set(UserSetForm userSetForm){return userSetForm.toString(); }public class UserSetForm {private Set<User> users;private UserSetForm(){users = new LinkedHashSet<User>();users.add(new User());users.add(new User());}public Set<User> getUsers() {return users;}public void setUsers(Set<User> users) {this.users = users;}@Overridepublic String toString() {return "UserSetForm{" + "users=" + users + '}';} }Map
//TODO http://localhost:8080/map.do?users['X'].name=Tom&users['X'].age=10&users['Y'].name=Lucy @RequestMapping(value = "map.do") @ResponseBody public String map(UserMapForm userMapForm){return userMapForm.toString(); }public class UserMapForm {private Map<String,User> users;@Overridepublic String toString() {return "UserMapForm{" + "users=" + users + '}';}public Map<String, User> getUsers() {return users;}public void setUsers(Map<String, User> users) {this.users = users;} }Json、Xml數據類型的綁定
JSON
User類有name與age屬性,并包含一個contactInfo
// { // "name": "Jim", // "age": 16, // "contactInfo": { // "address": "beijing", // "phone": "10010" // } // }//content-Type:application/json@RequestMapping(value = "json.do")@ResponseBodypublic String json(@RequestBody User user){return user.toString();}XML
// <?xml version="1.0" encoding="UTF-8" ?> // <admin> // <name>Jim</name> // <age>16</age> // </admin>//content-Type:application/xml@RequestMapping(value = "xml.do")@ResponseBodypublic String xml(@RequestBody Admin admin){return admin.toString();}@XmlRootElement(name="admin") public class Admin {private String name;private Integer age;@XmlElement(name="name")public String getName() {return name;}public void setName(String name) {this.name = name;}@XmlElement(name="age")public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "Admin{" + "name='" + name + '\'' + ", age=" + age + '}';} }格式化工具和類型轉換器
應用:前臺傳入一字符串,后臺接收一個java.util.Date類型
PropertyEditor的應用
內置的可擴展性;局部使用webdatabinder
binder.registerCustomEditor
PropertyEditorSupport有很多子類,可以根據使用場景來選擇
Formatter的應用
內置的可擴展性;全局/局部;Source=String
- 添加自定義的formatter
- 配置,全局生效
- 使用,由于當前MyDateFormatter是全局生效,所有直接使用Date即可,不需要WebDataBinder了
Converter的應用
內置的不可擴展性;全局/局部;Source=自定義的
與Formatter類似,Converter高級一些,可設置Source
- 實現converter
- 配置,全局生效
- 使用,由于當前MyDateConverter是全局生效,所有直接使用Date即可,不需要WebDataBinder了
RESTful
Resource Representational State Transfer
資源表現層狀態轉換
表現層:如果圖片可以表現為jpg、png等
表現形式:content-Type
冪等性:每次HTTP請求相同的參數,相同的URI,產生的結果是相同的
- GET:獲取資源
示例:http://www.book.com/book/001 - POST:創建資源-不具有冪等性
面向的不是資源本身,而是資源的接收者
示例:http://www.book.com/book/ - PUT:創建(更新)資源
示例:http://www.book.com/book/001 - DELETE:刪除資源
示例:http://www.book.com/book/001
- RESTful設計
轉載于:https://www.cnblogs.com/chencye/p/5686189.html
總結
以上是生活随笔為你收集整理的《SpringMVC数据绑定入门》笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu1715(Java)大数相加
- 下一篇: [Android] 关于系统工具栏和全屏