2008-10-27 6 views
4

-je utiliser Struts v1.3 et suivantes ont la forme d'entrée:Comment rogner la valeur du champ de saisie dans les entretoises?

Dans struts-config.xml:

<form-bean name="testForm" 
       type="org.apache.struts.validator.DynaValidatorForm"> 
     <form-property name="displayName" type="java.lang.String" /> 
    </form-bean> 

En validation.xml:

<form name="testForm"> 
     <field property="displayName" depends="required"> 
      <arg key="input.displayName" /> 
     </field> 
    </form> 

Quelle valeur dois-je assiette de "Afficher un nom"? Comment couper les valeurs de tous les champs de saisie "java.lang.String" du formulaire?

Répondre

2

Vous pouvez avoir une chance de couper la chaîne à l'instant, le processeur de requête met à jour les données des champs d'entrée au formulaire. Cela n'a pas été testé, mais ce qui se passe lorsque vous modifiez le SetDisplayName setter (String displayName) à quelque chose comme

public void setDisplayName(String displayName) { 
    this.displayName = displayName.trim(); 
} 

Ce n'est pas une très bonne solution, car il migre logique dans un poseur.

concernant

-1

Vous pouvez également essayer en utilisant javascript regexp dans le jsp qui rogner onfocus ou onblur

< html: text name = propriété "TestForm" = "Sélectionnez" onfocus = "javascript: cela. value = this.value.replace (/^\ s + | \ s + $/g, '') "onblur =" javascript: this.value = this.value.replace (/^\ s + | \ s + $/g, ' ') "/>

+0

Cela semble vraiment vraiment verbeux et erreur sujettes et faciles à oublier. Je suis d'accord que cela fonctionne, mais le découpage dans le formateur ou même dans l'action me semble meilleur. –

0

Si cela ne vous dérange pas d'avoir une logique de manipulation de chaînes dans votre classe Form, vous pouvez essayer le StringUti méthodes ls dans Commons Lang Jar Apache:

StringUtils JavaDoc

Cela vous permettra de découper vos chaînes dans un certain nombre de façons spécifiques, si vous voulez trimToEmpty, trimToNull, etc. Cela signifie que vous avez accès à la sécurité null méthodes, qui peuvent être utiles avec certaines valeurs.

1

Si vous voulez utiliser la compensation pour validation, je pense que la bonne façon est de créer et d'utiliser votre propre validateur (ou d'étendre un validateur existant) pour les champs requis qui prend l'équilibre en considération. Pour un exemple, vous pouvez utiliser cette page: http://struts.apache.org/1.2.4/userGuide/dev_validator.html, la section "Validateurs enfichables".

Si vous souhaitez utiliser la garniture pour tailler les valeurs de chaîne avant les utiliser dans votre logique métier, vous pouvez étendre org.apache.struts.validator.DynaValidatorForm et remplacer les méthodes qui récupèrent des valeurs, comme get (Nom de la chaîne), getString (nom de la chaîne) et ainsi de suite. Après cela, vous utilisez votre classe dans les déclarations formulaire-bean.

Questions connexes