たとえば、、 、 などのメソッドがあるAction
クラスが呼び出されています。UsersAction
login
logout
register
validate()
そして、私は次のようにメソッドを書きました:
@Override
public void validate() {
if ("".equals(username)) {
addFieldError("username", getText("username.required"));
}
if ("".equals(email)) {
addFieldError("email", getText("email.required"));
} else if (!Utils.isValidEmail(email)) {
addFieldError("email", getText("invalid.email.address"));
}
if ("".equals(phone)) {
addFieldError("phone", getText("phone.required"));
}
if ("".equals(password)) {
addFieldError("password", getText("password.required"));
}
}
問題は、このソリューションが登録アクションが呼び出された場合にのみ機能することです。とにかく、ログインまたはログアウトでは機能せず、フィールドが null でないか、電子メールが正しいかどうかを確認し、常にエラーが発生します。さて、ログアウトの解決策はその上に注釈を追加することでしたが、ログインには2つのフィールドしかなく、チェックする必要がないことを@SkipValidation
伝える方法がわかりません。Struts 2の目的はこれではないため、各アクションのアクションクラスを部分的に記述したくありません。username
password
email
phone