springcontroller:
@controller
@requestmapping("/user")
public usercontroller extends basecontroller{
@requestmapping("/adduser")
public void testbinderouput(@modelattribute user user, httpservletrequest request, httpservletresponse response){
system.out.println(user);
}
}
use對象:
public class user{
private string name;
private int sex;
private string address;
private int id;
public int getsex() {
return sex;
}
public void setsex(int sex) {
this.sex = sex;
public string getaddress() {
return address;
public void setaddress(string address) {
this.address = address;
public int getid() {
return id;
public void setid(int id) {
this.id = id;
public void setname(string name) {
this.name = name;
請求路徑:
localhost/user/adduser?user.name="test"
那麼在背景接受到的參數中,user對象的name屬性是null。如果路徑換為localhost/user/adduser?name="test",則user對象的name屬性是test。
這裡必須用name="test"而不是user.name="test",因為預設情況下springmvc是不支援user.name這種傳參方式的。
如果有個對象manager中也有name這個相同的屬性,那麼可以采用user.name,manager.name來傳輸參數。但是這個需要在controller中添加一個字首綁定:
添加綁定字首後的controller類如下:
@initbinder("manager")
public void initbinder1(webdatabinder binder) {
binder.setfielddefaultprefix("manager.");
}
@initbinder("user")
public void initbinder2(webdatabinder binder) {
binder.setfielddefaultprefix("user.");
system.out.println(user.getname);
@requestmapping("/addmanager")
public void testbinderouput(@modelattribute manager manager, httpservletrequest request, httpservletresponse response){
system.out.println(manager.getname);
這樣在使用連接配接localhost/user/adduser?user.name="test",去請求時,背景拿到的name的參數就不為null了。