我注意到JSF 1.2在actionListener方法中抛出异常时不会返回错误页面,但在action方法中抛出异常时会返回错误页面。为什么会这样?它能在两种情况下都返回错误页面吗?
FacesEvent
监听器方法中抛出的异常都会被静默地捕获并包装为AbortProcessingException
并记录到控制台。这正是规范要求的。
ActionEvent
监听器方法(以及任何其他的FacesEvent
监听器方法)不负责导航任务,真正的操作方法负责此项任务。通常,应该仅在想要观察动作调用时使用操作监听器方法,而不是执行某些影响响应的业务任务。