Validação da primavera @assertTrue
-
27-09-2019 - |
Pergunta
Como faço para exibir em uma mensagem de erro de validação JSP visualizada que ocorre como resultado de @AssertTrue
anotação? Ele não está ligado a um campo específico, mas estou usando -o para validar uma combinação de campos. Se eu usar <form:errors path="*"/>
Isso exibirá todos os erros para esse formulário?
Solução 2
Declarar uma propriedade booleana é o que parece funcionar para isso. Então, se houver:
@AssertTrue
public boolean isConditionTrue() {
...
...
}
depois declarar uma propriedade como:
private boolean conditionTrue;
funciona.
Outras dicas
Pelo que testei, é importante COMO AS você nomeia sua função de teste. E você deve nomeá -lo corretamente.
Você não precisa de campo, getter ou setter, mas sua função precisa começar com a instrução 'is*'.
Fe.
@AssertTrue
public boolean isConditionTrue() {
...
...
}
ou
@AssertTrue
public boolean isSomethingElseOk() {
...
...
}
No entanto, você precisa de um campo e getter/setter se precisar usar um formulário de erro com caminho, como:
<form:errors path="someFieldToDisplay" />
Mas acho que isso é bastante óbvio.
Algum problema de esquema em que eu não entrei, mas pode ser útil:
Isso pode ser útil também:falta de mensagens de erro.
Mas se você usar o esquema sem tag de versão, ele usa a versão mais recente por padrão.
Você deve nomear sua propriedade assim:
@AssertTrue(message = "....")
private boolean conditionTrue; //***NOT isConditionTrue***
public boolean isConditionTrue() {
return conditionTrue;
}
public void setConditionTrue(boolean conditionTrue) {
this.conditionTrue= conditionTrue;
}
<form:errors path="*"/> or
<form:errors path="conditionTrue"/>