OK、これがページのコードです
public class ViewDocument extends BasePage{
private List<WeinSyncFileContent> transactions;
....
public ViewDocument(){
transactions = ....;
....
listContainer.add(listView = new ListView<WeinSyncFileContent>("transactions", transactions){
@Override
public void populateItem(final ListItem<WeinSyncFileContent> item)
{
....
}
});
}
}
ページは表示されますが、エラーが発生します: オブジェクト クラス kz.wein.wicket.pages.documents.ViewDocument のシリアル化中にエラーが発生しました
そして、トランザクションフィールドについて不平を言っています: transactions [class=java.util.ArrayList$SubList] <----- field that is not serializable
また、リストに表示しているオブジェクトは最初にライブラリから取得され、シリアル化できないことに注意してください。Wicket はリスト内のシリアライズ可能なオブジェクトを必要とするので、それに対処するために、各オブジェクトを取得し、このようなクラスでシリアライズ可能にします
public class WeinSyncFileContent extends SyncFileContent implements Serializable{
public WeinSyncFileContent(SyncFileContent obj){
... setting fields ...
}
}
そのため、最初に SyncFileContent オブジェクト (シリアライズ可能ではない) を取得します。エラーについて何ができますか?