Tapestry5 @Persist默认值

时间:2012-08-16 06:14:46

标签: tapestry

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

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

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

由于

1 个答案:

答案 0 :(得分:5)

首先,我认为你不需要@persist你的表单值,因为tapestry将保持它们在验证失败提交。如果您想设置默认值,可以在@SetupRender中执行此操作,如:

@Porperty
@Persist
private String myValue;

@SetupRender
private void setup() {
    if(myValue == null) {
        myValue = "defaultVal";
    }
}

或者您可以在null check getter中执行此操作(在使用事件时这是有用的,因为@SetupRender未在那里调用):

@Persist
private String myValue;

public String getMyValue() {
    if(myValue == null) {
        myValue = "defaultVal";
    }
    return myValue;
}