2014-07-01 22 views
-3

以bindFromRequest()。get()方式獲取值時,它只返回null值。我得到所有String類型爲null且integr爲zer0。這裏是我的控制器和模型封裝代碼,我怎麼能解決這個錯誤:同時獲取表單中的值時返回空值

enter code here 

In controller: 

    public static Result getShow(){ 
    Register register=Form.form(Register.class).bindFromRequest().get(); 
    register.save(); 
    System.out.println(register); 
    return ok("@Required annotation kicked in.."+register); 
} 
In Models: 

package models; 

import javax.persistence.Entity; 
import javax.persistence.Id; 
import javax.persistence.Table; 

    @Entity 
    @Table(name="register") 
    public class Register { 
//private static final long serialVersionUID = 1L; 

private String firstname; 

private String lastname; 
@Id 
private String displayname; 

private String date; 

private String email; 

private String password; 

private String confirm_password; 

private String gender; 

private int phone_no; 

private String address; 

private int zipcode; 


    public String getFirstname() { 
return firstname; 

    } 
    public void setFirstname(String firstname) { 
    this.firstname = firstname; 
    } 

    public String getLastname() { 
    return lastname; 
    } 

    public void setLastname(String lastname) { 
    this.lastname = lastname; 
    } 
    public String getDisplayname() { 
    return displayname; 
    } 
    public void setDisplayname(String displayname) { 
    this.displayname = displayname; 
    } 
    public String getDate() { 
    return date; 
    } 
    public void setDate(String date) { 
    this.date = date; 
    } 
    public String getEmail() { 
return email; 
    } 
    public void setEmail(String email) { 
this.email = email; 
    } 
    public String getPassword() { 
return password; 
    } 
    public void setPassword(String password) { 
this.password = password; 
    } 
    public String getConfirm_password() { 
return confirm_password; 
    } 
public void setConfirm_password(String confirm_password) { 
    this.confirm_password = confirm_password; 
} 
public String getGender() { 
    return gender; 
} 
public void setGender(String gender) { 
    this.gender = gender; 
} 
public int getPhone_no() { 
    return phone_no; 
} 
public void setPhone__no(int phone_no) { 
    this.phone_no = phone_no; 
} 
public String getAddress() { 
    return address; 
} 
public void setAddress(String address) { 
    this.address = address; 
} 
public int getZipcode() { 
    return zipcode; 
} 
public void setZipcode(int zipcode) { 
    this.zipcode = zipcode; 
} 

} 

回答

0

如果bindFromRequest().get()返回null,那麼Form未通過驗證。要進行調試,請登錄Form.form(Register.class).bindFromRequest().errors(),以查看Form中的驗證錯誤。除此之外,如果沒有看到Register類以及您試圖綁定的數據,沒有人會告訴您發生了什麼問題。

您不應該在Form上盲目地撥打get()並嘗試保存它,因爲這顯然可能會失敗。 至少在嘗試保存之前檢查它是否爲hasErrors()。如果確實有驗證錯誤,您應該將該Form回傳給視圖以向用戶顯示這些錯誤。

請參閱文檔中的Handling Binding Failure