2012-08-16 62 views
1

我有一個窗體的頁面,它使用@Persist字段作爲窗體控件(文本框,單選按鈕等),這樣如果窗體被提交,數據保留在窗體if自定義驗證失敗。Tapestry5 @Persist默認值

從文檔中,「用@Persist標記的域可能沒有默認值(無論是內聯還是內部構造函數)」。不過,我需要爲某些表單元素(包括一些@Validate(「required」)選擇框)設置默認值。

實現此目的的方法是什麼?

感謝

回答

5

首先,我不認爲你需要@Persist表單值,如掛毯將讓他們在你的驗證失敗提交。如果你這樣想設置的默認值,你可以在像@SetupRender這樣做:

@Porperty 
@Persist 
private String myValue; 

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

或者你可以在一個空檢查吸氣做到這一點(這是使用事件時,一個有用的東西作爲@SetupRender不叫那裏):

@Persist 
private String myValue; 

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

感謝您的建議,我會嘗試一下,看看它是如何去。 – fabspro 2012-08-16 09:05:00

+0

一個空檢查獲取工作完美,感謝您的帖子。 – fabspro 2012-08-17 09:34:51