2011-12-22 99 views
3

使用來自PlayFramework和數據綁定的驗證,是否有可能通過(可能)裝飾器來避免綁定某些字段?如何避免綁定一些字段?

例如,我有這樣的模式:

class User extends Model { 
    @Required 
    @Email 
    public String email; 

    // I'd like to avoid setting this 
    public String password; 
} 

,並在我的模型:

Store store = new Store(); 
Binder.bindBean(params.getRootParamNode(), store, null);   
validation.valid(store); 

如果用戶POST電子郵件地址和密碼,密碼也會被設置,但我不想要。

我該怎麼做?

回答

4

如果你不想堅持的數據,但你希望它被綁定爲自動綁定,那麼你可以使用@Transient批註的一部分......

class User extends Model { 
    @Required 
    @Email 
    public String email; 

    // I'd like to avoid setting this 
    @Transient 
    public String password; 
} 

如果你不希望它在所有的約束都,然後用NoBinding annotation

@play.data.binding.NoBinding 

public class User extends Model { 
    @NoBinding("profile") public boolean isAdmin; 
    @As("dd, MM yyyy") Date birthDate; 
    public String name; 
}