0
我的首张J2EE 6应用程序。 我正在使用ExceptionHandler来处理异常,但我并不喜欢它。我想要做的事情似乎太复杂了。如何通过ExceptionHandler将错误消息传递给错误页面?
例如
import java.io.IOException;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jboss.solder.exception.control.CaughtException;
import org.jboss.solder.exception.control.Handles;
import org.jboss.solder.exception.control.HandlesExceptions;
/**
* Handle exceptions and redirect page.
*/
@HandlesExceptions
public class ExceptionHandlers {
void noResult(
@Handles CaughtException<dne.nmst.ond.exceptions.OfficeNotFoundException> caught,
HttpServletRequest request, HttpServletResponse response) {
caught.handled();
try {
String msg = caught.getException().getMessage();
response.sendRedirect(request.getContextPath()
+ "/searchOffice.xhtml");
} catch (IOException e) {
e.printStackTrace();
}
}
我想在searchOffice.xhtml显示从OfficeNotFoundException的错误消息。我如何从这里到达那里?
我考虑过的一件事是将错误放入Flash上下文中,但是当试图从此异常处理类引用FacesContext时,我得到了NPE。
我在web.xml中尝试了一个错误页面条目。我无法让它工作。
我知道我可以将它作为请求参数传递给重定向,但这似乎是一种解决方法。我想以最简单和“最正确”的方式做到这一点(无论如何)。
我错过缝2,我们可能只是这样做在pages.xml:
<exception class="dne.nmst.ond.exceptions.OfficeNotFoundException">
<redirect include-page-params="false" view-id="searchOffice.xhtml">
<message severity="warn"/>
</redirect>
与
<h:messages />
视图
。