spangoMedlem sedan juni 20006 147 inlägg
Försöker validera postnummer i Struts med hjälp av mask-validatorn men får inte skräpet att funka. Så här ser det ut i min validation.xml:
<field property="zipCode" depends="required,mask">
<arg0 key="formBean.zipCode" />
<msg name="mask" key="formBean.zipCode.mask" />
<var>
<var-name>mask</var-name>
<var-name>^[0-9]{3}[\s\-]?[0-9]{2}$</var-name>
</var>
</field>
Då ska man alltså kunna skriva in postnummer på formen "12345", "123 45" och "123-45". Men vad man än gör så säger bara validatorn nej. Jag har testat regexpen i validatorn på http://jakarta.apache.org/regexp/applet.html och där funkar den fint. Jag har testat att använda avesvärt mycket mer basala regexpar i validation.xml, men vad det jag än gör så klagar Struts alltid på att mitt inmatade postnummer inte stämmer överens med masken (om man inte lämnar tomt i vilket fall den klagar på det pga required). Finns det nåt knep man måste ta till för att få eländet att funka?
LimeMedlem sedan sep. 2001837 inlägg
Escapade tecken...
Testa ^[0-9]{3}[\\s\\-]?[0-9]{2}$
spangoMedlem sedan juni 20006 147 inlägg
Nope, funkar inte... inte ens enkla varianter som ^[0-9]*$ funkar. :l
LimeMedlem sedan sep. 2001837 inlägg
Strange... jag får alla att funka, utom den första.
Har du testat detta:
<h:inputText id="zipCode"
value="#{zipCode}">
<s:commonsValidator
mask="^[0-9]*$"
server="true"
client="false"/>
</h:inputText>
Jag vet att det inte är snyggt men det kan vara bra att testa det direkt i ett fält först och sedan göra det till en generell regel som gäller för sitens alla zipCode-fält.
spangoMedlem sedan juni 20006 147 inlägg
Kräver inte det där Shale? Vi kör gammel-Struts (Action Framework).
LimeMedlem sedan sep. 2001837 inlägg
Aha. Jo, det är Shale.
Måste kolla, långt bak i mitt minne finns ett litet minne om att vi hade problem med gamla valideringen i Struts. Finns förmodligen någon notering om det i vår interna FAQ men jag kommer inte åt den förns jag är inne på kontoret på torsdag. Kan kolla då om du inte hittat en lösning.