我要寻找到在处理该检票不会对会话大小产生了破坏性影响对象的集合的最好办法一些帮助或指导。 显然,包装物体与任何Wicket的IModel类是理想的,但什么是做的最好的方式与对象的集合工作(例如,搜索结果的集合)时。
我曾与一个单个对象工作时使用LoadableDetachableModel取得了成功,但我似乎间歇性地得到一个java.io.NotSerializableException关闭Tomcat的时候。 起初,我以为自己是安全的,但被抛出的异常表明并非如此。
这是(编辑为简洁起见)的代码:
public class CandidateSearch extends BasicPage {
private static final long serialVersionUID = 1L;
private CandidateService service = new CandidateService();
public CandidateSearch() {
ListView<Candidate> listView = new ListView<Candidate>("candidates", service.search()){
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<Candidate> item) {
Candidate candidate = (Candidate) item.getModelObject();
PageParameters pars = new PageParameters();
pars.add("id", candidate.getId());
Link<String> candidateLink = new BookmarkablePageLink<String>("candidateLink", CandidateDetails.class, pars);
candidateLink.add(new Label("candidateId", "ID-" + new Long(candidate.getId()).toString()));
item.add(candidateLink);
item.add(new Label("name", candidate.getFirstName() + " " + candidate.getLastName()));
item.add(new Label("location", candidate.getCity() + ", " + candidate.getState()));
}
};
add(listView);
}
}
注:service.search返回的java.util.List类型为候选人。