7

人間がブラウザーで直接使用する Web アプリケーションのバックエンドとして JAX-RS REST サービスを使用したいと考えています。人間は時々間違いを犯すので、何か間違ったことが入力された場合は、フォームの入力を検証し、検証メッセージとともにフォームを再表示したいと考えています。デフォルトでは、JAX-RS は、すべての値または間違った値が送信されたわけではない場合、400 または 404 状況コードを送信します。

たとえば、ユーザーがフォーム フィールド「count」に「xyz」を入力したとします。

@POST
public void create(@FormParam("count") int count) {
  ...
}

JAX-RS は「xyz」を変換できず、int「400 Bad Request」を返します。

フィールド「カウント」に不正な値を入力したことをユーザーに伝えるにはどうすればよいですか? どこでも文字列を使用し、手で会話を行うよりも便利なことはありますか?

4

2 に答える 2

3

たとえば、AOP、JSR-303、および JAX-RS 例外マッパーを使用することをお勧めします。

import javax.validation.constraints.Pattern;
@POST
public void create(@FormParam("count") @Pattern("\\d+") String arg) {
  int count = Integer.parseInt(arg);
}

ValidationException次に、すべての-sをキャッチしてユーザーを正しい場所にリダイレクトする JAX-RS 例外マッパーを定義します。

JAX-RSを使用したs3auth.comフォーム検証で同様のものを使用しています: https://github.com/yegor256/s3auth/blob/master/s3auth-rest/src/main/java/com/s3auth/rest/IndexRs .java

于 2013-01-01T09:44:24.650 に答える
-2

@FormParam("count") 整数カウントを使用

それはうまくいきます。

于 2010-12-13T22:47:07.343 に答える