2009-07-02 6 views
2

Ich habe eine Karte und ich möchte validieren in Struts 2 Validierung Framework mit Ausdruck Validierung Wie kann ich dynamisch auf die Elemente der Karte zugreifen?Wie man dynamische Kartenelemente validiert

wenn Karte myMap; Wie kann ich die Karte mit dynamischem Schlüssel validieren? wenn mymap statische Schlüssel wie „Gehalt“ hat, könnte ich wie

<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> 

dank Validierung

Helen

Antwort

0

Ich glaube nicht, dass Sie dies im deklarativen Validierung tun können. Ich würde vorschlagen, auf die Validierungsmethode zu verweisen oder die Validierung in Javascript durchzuführen, wenn Sie die JavaScript-Validierung verwenden, die vom Framework generiert wird.

1

Sie können die myApp auf zwei Arten in der deklarativen Validierung verwenden.

  1. von myMap.salary mit
  2. von myMap mit [ ‚Gehalt‘]

Sie eine der oben genannten Bezeichnungen verwenden müssen, die darauf basiert, wie Sie Ihre Eingabe Formularfelder definiert haben .

Zum Beispiel, wenn Ihr Eingabeformular so aussieht wie unten, dann müssen Sie die verwenden. Operator wie Sie die verwenden. Operator beim Definieren des Namens des Eingabefeldes.

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

Wenn Sie [] opertaor den Namen des Eingabefeldes für die Definition dann die [verwenden] Operator die Eigenschaft in Validator zuzugreifen.

Der obige Validierungscode ist also korrekt. Sie müssen nur Ihr Eingabefeld im Eingabeformular korrekt mit dem Operator [] definieren.

this helps