2010-04-30 5 views
0

Mon problème est que j'ai une annotation dans la classe d'action Struts2 commeentretoises d'émission d'annotation

private String[] origfilenofrom; 

@FieldExpressionValidator(fieldName="origfilenofrom",key="",message="File Length should be 12 for old file format and 15 for new file format",expression="checkorigFileFormat(origfilenofrom)") 

Maintenant, ma méthode est

public boolean checkorigFileFormat(String[] files) 
{ 
    for(int counter=0;counter<files.length;counter++) 
    { 
    int n=files[counter].length(); 
    if(!(n==12 || n==15)) 
    { 
    return false; 
    } 
    } 
    return true; 
} 

Donc, pour toute chaîne dans cette chaîne [], qui revient false la valeur est fausse. N'importe 3 chaînes dans cette chaîne [] sont vraies si une chaîne est fausse alors le message d'annotation est affiché pour toutes.

Je souhaite que le message ne s'affiche pas lorsque la chaîne est vraie.

+0

donc aucun ne peut répondre à cela ... est-ce un problème avec Struts 2 cadre de conception .. ?? .... tous les commentaires – Gourav

Répondre

0

J'essaie de répondre. Je pense que vous devez utiliser la méthode validate au lieu de l'annotation.

@Override 
public void validate() { 
int count =0; 
for(String s : origfilenofrom) 
    { 
    if (!(s.length()==12 || s.length()==15)) { 

    this.addActionError("File Length should be 12 for old file format and 15 for new file format for file no :"+ count); 
     } 
    count++; 
    } 
} 
Questions connexes