1

我有一个带有表单的页面,它使用@Persist 字段作为表单控件(文本框、单选按钮等),因此如果提交表单,如果自定义验证失败,数据将保留在表单中。

从文档中,“用@Persist 标记的字段可能没有默认值(无论是内联设置还是在构造函数内设置)”。但是,我需要为某些表单元素(包括一些 @Validate("required") 选择框)设置默认值。

实现这一目标的方法是什么?

谢谢

4

1 回答 1

5

首先,我认为您不需要 @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;
}
于 2012-08-16T08:24:41.343 回答