我有一个带有表单的页面,它使用@Persist 字段作为表单控件(文本框、单选按钮等),因此如果提交表单,如果自定义验证失败,数据将保留在表单中。
从文档中,“用@Persist 标记的字段可能没有默认值(无论是内联设置还是在构造函数内设置)”。但是,我需要为某些表单元素(包括一些 @Validate("required") 选择框)设置默认值。
实现这一目标的方法是什么?
谢谢
我有一个带有表单的页面,它使用@Persist 字段作为表单控件(文本框、单选按钮等),因此如果提交表单,如果自定义验证失败,数据将保留在表单中。
从文档中,“用@Persist 标记的字段可能没有默认值(无论是内联设置还是在构造函数内设置)”。但是,我需要为某些表单元素(包括一些 @Validate("required") 选择框)设置默认值。
实现这一目标的方法是什么?
谢谢
首先,我认为您不需要 @persist 您的表单值,因为挂毯会将它们保留在您的验证失败提交中。如果您想设置默认值,您可以在 @SetupRender 中这样做,例如:
@Porperty
@Persist
private String myValue;
@SetupRender
private void setup() {
if(myValue == null) {
myValue = "defaultVal";
}
}
或者您可以在 null 检查 getter 中执行此操作(这在使用事件时很有用,因为那里没有调用 @SetupRender):
@Persist
private String myValue;
public String getMyValue() {
if(myValue == null) {
myValue = "defaultVal";
}
return myValue;
}