SpringMVC(七):@RequestMapping下使用POJO對象綁定請求參數值


Spring MVC會按照請求參數名和POJO屬性名進行自動匹配,自動為該對象填充屬性值,支持級聯屬性。

如:address.city.dept.address.province等。

步驟一:定義Account.java,Address.java類:

 1 package com.dx.springlearn.entities;
 2 
 3 public class Account {
 4     private String username;
 5     private String password;
 6     private Integer age;
 7     private Address address;
 8 
 9     public String getUsername() {
10         return username;
11     }
12 
13     public void setUsername(String username) {
14         this.username = username;
15     }
16 
17     public String getPassword() {
18         return password;
19     }
20 
21     public void setPassword(String password) {
22         this.password = password;
23     }
24 
25     public Integer getAge() {
26         return age;
27     }
28 
29     public void setAge(Integer age) {
30         this.age = age;
31     }
32 
33     public Address getAddress() {
34         return address;
35     }
36 
37     public void setAddress(Address address) {
38         this.address = address;
39     }
40 
41     @Override
42     public String toString() {
43         return "Account [username=" + username + ", password=" + password + ", age=" + age + ", address=" + address
44                 + "]";
45     }
46 
47 }
package com.dx.springlearn.entities;

public class Address {
    private String province;
    private String city;
    private String details;

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getDetails() {
        return details;
    }

    public void setDetails(String details) {
        this.details = details;
    }

    @Override
    public String toString() {
        return "Address [province=" + province + ", city=" + city + ", details=" + details + "]";
    }

}

步驟二:在HelloWord.java控制類內添加testPojo方法:

package com.dx.springlearn.handlers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.dx.springlearn.entities.Account;

@Controller
@RequestMapping("class_requestmapping")
public class HelloWord {
    private static String SUCCESS = "success";

    @RequestMapping("/testPojo")
    public String testPojo(Account account) {
        System.out.println("testPojo: account:" + account);
        return SUCCESS;
    }
}

步驟三:在index.jsp中添加表單提交html腳本:

    <form name="testPojo" method="POST"
        action="class_requestmapping/testPojo">
        username:<input type="text" name="username" /> <br>
        password:<input type="password" name="password" /> <br>
        age:<input type="text" name="age" /> <br>
        address:<br>
        province:<input type="text" name="address.province" /> <br>
        city:<input type="text" name="address.city" /> <br>
        details:<input type="text" name="address.details" /> <br>
        <input type="submit" value="Submit">
    </form>
    <br>

步驟四:測試

提交表單后,打印結果:

testPojo: account:Account [username=abc123, password=123456, age=28, address=Address [province=zhejiang, city=hangzhou, details=hangzhou huo che zhan]]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM