フォーム検証の例外が@ExceptionHandler(柔軟性が必要)とSimpleMappingExceptionResolverの一般的なシステム例外によって処理されるWebアプリケーションを開発しました電子メール通知など)。Spring例外処理 - ExceptionResolverと@ExceptionHandlerを同時に使用する方法
両方とも使用すると、@ExceptionHandlerにマップされた例外は@ExceptionHandlerには到達しませんが、ExceptionResolverではdefaultErrorとして取得されます。
一緒に働かせるにはどうすればいいですか? DispatcherPortletで
@ExceptionHandler(ValidatorException.class)
public String handleFormException(ValidatorException ex, ActionRequest actionRequest) {
logger.error(ex.getMessage());
//TODO make conditions
return "mainOrderForm";
}
@ActionMapping(params = "action=addDocOrder")
public void addDocOrder(@ModelAttribute("order") CstOrderBeanImpl orderBean, BindingResult result, ActionRequest actionRequest, ActionResponse response)
throws PortalException, SystemException, ValidatorException {
logger.info("Adding Form Order");
Calendar cal = TimeUtils.getEuDeadLine(orderBean);
orderBean.setDeadLine(cal.getTime());
ValidatorException ve = validateService.validate(orderBean, result, actionRequest, validator);
if(ve != null)
throw ve;
、インターセプタをチェックしますが、何も存在しないので、それはデフォルトを行い
catch (Exception ex) {
// Trigger after-completion for thrown exception.
triggerAfterActionCompletion(mappedHandler, interceptorIndex, processedRequest, response, ex);
は...あり
私はちょうど指摘ポートレット環境であることは、通常はビューが少ないことです。パラメータによって駆動されます。
こんにちはheikkim、これは私が最後にやったことです、私はハンドラでメソッドを呼び出さなかったが、 instanceof ValidatorException)、私は必要なことをしました。しかし、あなたが示唆しているのは、ロジックがハンドラにあるときには、例外ではなく、もっと透明であることです。Resolver – lisak