2013-05-16 1 views
2

Je souhaite utiliser jsr303 à la place du cadre de validation personnalisé actuel en raison de certaines fonctionnalités que le framework personnalisé ne prend pas encore en charge, et j'étudie si le fichier jsr prend en charge une certaine utilisation. Disons que j'ai un champ d'offre de prêt présenté au client sur une partie frontale, et que le champ est prérempli avec un montant de prêt généré par le système en fonction du pointage de crédit de l'utilisateur, et que le client peut prendre le montant total ou inférieur à la valeur offerte (donc pas plus que ce qui était offert).BeanValidation pour les valeurs de contraintes dérivées à l'exécution

terrain:

@DecimalMin("1000.00") 
@DecimalMax(onlyKnowAtRuntime) 
private BigDecimal loanOffer; 

offer = $20 000.00 
customer inputs = $50 000.00 

Parce que le pointage de crédit est runtime généré, nous ne savons pas ce que le maximum (@DecimalMax qui dans ce cas est $20 000.00) valeur sera au moment de la compilation, mais nous devons faire sûr que nous validons que le client ne prend pas en charge $20 000.00

Quelles idées avez-vous autour d'un tel problème?

Répondre

1

Votre cas d'utilisation suggéré n'est pas possible avec les contraintes de validation de Bean fournies. Really Bean Validation est plus sur la description des contraintes statiques.

Une fois pourrait imaginer, cependant, d'écrire une contrainte personnalisée @MaxCreditExceeded. Rédaction d'une contrainte personnalisée est facile, la question est de savoir comment obtenir la limite de crédit actuelle pour l'utilisateur. Une approche pourrait être d'utiliser un ThreadLocal. Mais cela nécessite que la limite de crédit soit correctement définie et effacée dans cette variable.

Questions connexes