在我的wicket应用程序中,Page navigation是通过调用onClick()方法上新页面的构造函数来创建新的Page对象。如下。Wicket - 在异常处理后正确清理页面组件
DisplayItem.add(new Link("edit") {
@Override
public void onClick() {
try{
setResponsePage(new ReportPage(object, getPageReference()));
} catch (CustomException e){
/// set some feedback message
}
}
});
ReportPage有几个LoadableDetachableModels,PageableListViews,面板,片段等我做的ReportPage的构造异常处理,如果发生异常抛出回来。 Ses在下面。 (部分代码)
public ReportPage(final Objectm, final PageReference pr) throws CustomException{
try{
final LoadableDetachableModel<MaintReport> ldm =
new LoadableDetachableModel<MaintReport>() {
@Override
protected MaintReport load() {
return new MaintReport();
}
};
/*
Several LoadableDetachableModels, PageableListViews, Panels, Fragments etc.
*/
} catch (Exception ex){
// create Custom Exception
} finally {
// Clean up of stuff
}
因此,如果构建页面时发生异常。我应该怎么做清理(在终于块)? 。我应该将所有单个对象设置为null吗? 是否有任何Wicket方法垃圾收集(或发送信号给GC)?
谢谢
除了您的问题的优点之外,为什么不处理ReportPage中的异常登录,因为此页知道出了什么问题以及如何处理它?这样你就可以在两个或两个以上的地方对页面进行逻辑... – 2013-02-15 13:38:58
我是否错过了某些东西,或者不应该让垃圾收集器处理这种情况? – Nicktar 2013-02-15 13:40:34
@RobertNiestroj我在报告页面中有一个单独的try..catch块,并且记录了错误,但是如果我不抛出Exception,那么wicket会生成运行时页面异常,因为html页面中标记的组件不会呈现。我想,我会修改我的帖子以增加更多的清晰度。 – Jay 2013-02-15 13:46:19