我有一个带有表单的页面,它使用@Persist字段作为表单控件(文本框,单选按钮等),这样如果提交表单,如果自定义验证失败,数据将保留在表单中。 / p>
从文档中,“标有@Persist的字段可能没有默认值(无论是设置为内联还是设置在构造函数内)”。但是,我需要为某些表单元素设置默认值(包括一些@Validate(“required”)选择框)。
实现这个目标的方法是什么?
由于
答案 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;
}