Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Wicket';s内部错误页_Java_Wicket - Fatal编程技术网

Java 如何在Wicket';s内部错误页

Java 如何在Wicket';s内部错误页,java,wicket,Java,Wicket,我有一个自定义的InternalErrorPage,我将其放入ApplicationSettings中,如下所示: getApplicationSettings().setInternalErrorPage(InternalErrorPage.class); getExceptionSettings().setUnexpectedExceptionDisplay( IExceptionSettings.SHOW_INTERNAL_ERROR_PAGE); getRequestCycleSet

我有一个自定义的
InternalErrorPage
,我将其放入
ApplicationSettings
中,如下所示:

getApplicationSettings().setInternalErrorPage(InternalErrorPage.class);
getExceptionSettings().setUnexpectedExceptionDisplay(
  IExceptionSettings.SHOW_INTERNAL_ERROR_PAGE);
getRequestCycleSettings().setUnexpectedExceptionDisplay(
  IExceptionSettings.SHOW_INTERNAL_ERROR_PAGE);

我想在此页面上显示堆栈跟踪(当然,如果我处于开发模式)。我如何才能做到这一点?

在Wicket 1.4中,您可以使用

getRequestCycle().onRuntimeException(new MyErrorPage(), theException);
请查看和以获得进一步的解释

在Wicket 1.5中,出现了onRuntimeException。相反,你可以

“将您自己的org.apache.wicket.request.cycle.IRequestCycleListener(AbstractRequestCycleListener)添加到org.apache.wicket.Application.getRequestCycleListeners().add()中,并实现其#OneException(RequestCycle,Exception)”(引自)


所以你建议把异常放在某种会话变量中?然后能够从会话中获取并在InternalErrorPage.java类中显示它?我只是想知道-也许wicket itslef已经完成了,我只需要在我自己的页面上出现这个异常不,你只需要将异常传递到你自己的错误页面。如果您遵循链接,您将看到Wicket中就是这样做的。在生产模式下向客户显示stacktrace是一种糟糕的安全做法。这就是为什么Wicket没有将异常传递到这个页面。是的,我知道,这就是为什么我只写开发模式