4

私の豆にはリストがあります

List<SomeClass> values = new ArrayList<SomeClass>();

SomeClass{
 int a;
 int b;
 int c;
}

私の検証コード -

int i =0
for(SomeClass entry: values){
  if(entry.getA() < 0 && entry.getB() < 0 && entry.getC() > 0){
       bindingResult.addError(newFieldError("bean", "values[" + i"].a", values.get(i).getA(),false,new String []{"error.code"}, null, null));
  }
}

error.code文字列 " C が 0 より大きい場合、A と B は 0 より大きい必要があります"

問題は、これらの 2 つのフィールドが UI で強調表示さvalues[i].aれるように、エラー コードをマップしたいことです。values[i].b

FieldErrorコンストラクターは を受け入れますが、受け入れませString fieldString [] fields

同じエラーに 2 つのエラー フィールドを追加する方法はありますか?

ありがとう

4

1 に答える 1

0

複数のフィールドが強調表示された検証メッセージを表示する条件を検出したら、次のコードを使用して、共通/グローバル エラー メッセージを表示できます。

if ("your error condition"){
    errors.reject("your.error.code");
}

次に、強調表示するフィールドに対応するブール値フラグでモデルを更新します。

model.addAttribute("xFieldHighlighted", true);
model.addAttribute("yFieldHighlighted", true);

次に、JavaScript を使用してフィールドを強調表示します。以下の JQuery の例:

var xFieldHighlighted = '${xFieldHighlighted}';
var yFieldHighlighted = '${yFieldHighlighted}';

if (xFieldHighlighted == 'true'){
    $('#xFieldID').addClass('cssError');
}

if (yFieldHighlighted == 'true'){
    $('#yFieldID').addClass('cssError');
}
于 2015-04-29T09:42:50.127 に答える