0
我想通過一個searchService到一個窗體Wicket使用。 當我運行這個與searchService是最終的,我沒有得到任何問題,但我必須做出最後的決定,以便在覆蓋的onSubmit中使用它。對象序列化與Wicket問題
final SearchService searchService = new SearchService();
Form<?> form = new Form("searchForm") {
public void onSubmit() {
List<File> results = searchService.getSearchResults();
info("Found: " + results.size());
}
};
如果我這樣做,我收到一個錯誤:
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream$ObjectCheckException: The object type is not Serializable!
A problem occurred while checking object with type: test.service.SearchService
Field hierarchy is:
2 [class=test.webui.HomePage, path=2]
private java.lang.Object org.apache.wicket.MarkupContainer.children [class=[Ljava.lang.Object;]
private java.lang.Object org.apache.wicket.MarkupContainer.children[1] [class=org.apache.wicket.markup.html.form.Form, path=2:searchForm]
private final test.service.SearchService test.webui.HomePage$1.val$searchService [class=test.service.SearchService] <----- field that is causing the problem
我是新來的檢票口,所以我不知道是否有做這種正確的方法是什麼?
所以我想要做的是... SearchService包含幫助我查詢數據庫的函數。 我有一個常規的按鈕,將onClick調用searchService.addProduct(); 然後提交按鈕,將onClick調用searchService.getSearchResults(); 如果我做了第一個選項,我將無法在按鈕函數中使用我的searchService變量。 什麼是最好的方法?第二或第三? 我一直在閱讀模型,並沒有完全理解他們,但這也有助於這種情況嗎? – dhongyt 2013-02-28 02:22:35
只需使用表單模型來存儲您需要的內容並將它傳遞給這兩個組件。模型只是一個過度炒作的指針。從你的評論我採取SearchService是可變的,呃?糟糕的設計。 – 2013-02-28 16:13:25