2009-07-02 5 views
2

J'ai une carte et je veux valider dans le cadre de validation de struts 2 en utilisant la validation d'expression comment puis-je accéder dynamiquement aux éléments de la carte?comment valider des éléments de carte dynamique

si Map myMap; comment puis-je valider la carte avec une clé dynamique? si mymap a clé statique « Salaire », je pourrais valider comme

<field 
    name="myMap['Salary']"> 
    <field-validator 
     type="regex"> 
     <param 
     name="expression">[0-9]+[.][0-9]+</param> 
     <message>${getText("errors.validation.number")}</message> 
    </field-validator> 
</field> 

grâce,

Helen

Répondre

0

Je ne pense pas que vous pouvez le faire dans la validation déclarative. Je suggère de passer à la méthode de validation pour cela, ou de faire la validation en javascript si vous utilisez la validation javascript qui est générée par le framework.

1

Il existe deux façons d'utiliser myApp dans la validation déclarative.

  1. En utilisant myMap.salary
  2. En utilisant myMap [ « salaire »]

Vous aurez besoin d'utiliser l'une des notations ci-dessus qui est basé sur la façon dont vous avez vos champs de formulaire d'entrée défini . Par exemple, si votre formulaire de saisie ressemble à quelque chose comme ci-dessous, vous devez utiliser le. opérateur que vous utilisez le. opérateur lors de la définition du nom du champ de saisie.

<s:form action="sayHello"> 
<s:textfield name="myMap.salary" label="Salary"> 
<s:submit/> 
</s:form> 

Si vous utilisez [] opertaor pour définir le nom du champ de saisie puis utilisez l'opérateur [] pour accéder à la propriété en validateur. Donc, votre code de validation ci-dessus est correct, il vous suffit de définir correctement votre champ de saisie au format d'entrée avec l'opérateur [].

Hope this helps

Questions connexes