@Documented @Target(value=METHOD) @Retention(value=RUNTIME) @Interceptor(value=OnError.Impl.class) @Published public @interface OnError
Interceptor
。
次の例では、"ApplicationException"が送出された場合の遷移先を
入力画面(registerForm.jsp)に設定している。
@OnError
(
type = ApplicationException.class
, path ="servlet://registerForm.jsp"
)
public HttpResponse handle(HttpRequest req, ExecutionContext ctx) {
registerUser(req.getParamMap());
return new HttpResponse(200, "servlet://registrationCompleted.jsp");
}
この処理は、以下のコードによる処理と本質的に同等である。
public HttpResponse handle(HttpRequest req, ExecutionContext ctx) {
try {
registerUser(req.getParamMap());
return new HttpResponse(200, "servlet://registrationCompleted.jsp");
} catch(ApplicationException ae) {
throw new HttpErrorResponse(400, "servlet://registerForm.jsp", ae);
}
}
OnError.Impl
Modifier and Type | Required Element and Description |
---|---|
java.lang.String |
path
リクエストハンドラから、
type()
に合致する実行時例外が送出された場合に送信する画面のリソースパスを返す。
(必須属性) |
java.lang.Class<? extends java.lang.RuntimeException> |
type
このインターセプタがハンドリングする実行時例外。
(必須属性)
|
Modifier and Type | Optional Element and Description |
---|---|
int |
statusCode
リクエストハンドラから、
type()
に合致する実行時例外が送出された場合のレスポンスステータスを返す。 |
public abstract java.lang.Class<? extends java.lang.RuntimeException> type
public abstract java.lang.String path
type()
に合致する実行時例外が送出された場合に送信する画面のリソースパスを返す。
(必須属性)public abstract int statusCode
type()
に合致する実行時例外が送出された場合のレスポンスステータスを返す。
デフォルトではステータスコード400(Bad Request)となる。