背景:私は Struts2 を REST および Convention プラグインと共に使用しているため、設定の約 99% は、xml ファイルではなく、私が作成したクラスにあります。規則を使用すると、メソッドの注釈を使用してサーバー側とクライアント側の検証を構成できます。たとえば、私が使用しているアカウント作成メソッドは次のようになります。
@Validations(
requiredFields = {
@RequiredFieldValidator(type = ValidatorType.SIMPLE, fieldName = "userName", message = "You must enter a value for field."),
@RequiredFieldValidator(type = ValidatorType.SIMPLE, fieldName = "firstName", message = "You must enter a value for field."),
@RequiredFieldValidator(type = ValidatorType.SIMPLE, fieldName = "lastName", message = "You must enter a value for field."),
@RequiredFieldValidator(type = ValidatorType.SIMPLE, fieldName = "password", message = "You must enter a value for field.")
},
emails = {@EmailValidator(type = ValidatorType.SIMPLE, fieldName = "email", message = "You must enter a value for email.")},
stringLengthFields = {
@StringLengthFieldValidator(type = ValidatorType.SIMPLE, trim = true, minLength = "6", maxLength = "16", fieldName = "userName", message = "Username must be at least 6 letters."),
@StringLengthFieldValidator(type = ValidatorType.SIMPLE, trim = true, minLength = "8", maxLength = "16", fieldName = "password", message = "Password must be at least 8 characters.")
}
)
public String create() {
//create the account
}
これはうまく機能します。javascript が JSP に適切にプッシュされ、送信前にフォームが検証され、サーバー側の検証もうまく機能します。すべての条件が満たされると、create()
メソッドが適切に呼び出され、すべてが機能します。
問題は、クライアント側の検証がバイパスされ、サーバー側の検証で失敗した場合にあります。すべてのドキュメントは、ユーザーが問題を解決できるように、検証インターセプターが適切なフィールドエラーを設定してユーザーをフォームに送り返すことを示していますが、私のアプリでは、完全に空白のページにリダイレクトするだけです。
質問 - 値を入力して fieldErrors を適切に設定できるように、フォームのリダイレクト先を検証インターセプターに伝えるにはどうすればよいですか?