webForumDet fria alternativet

Knas med mask i Struts

5 svar · 619 visningar · startad av spango

spangoMedlem sedan juni 20006 147 inlägg
#1

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

Escapade tecken...

Testa ^[0-9]{3}[\\s\\-]?[0-9]{2}$

spangoMedlem sedan juni 20006 147 inlägg
#3

Nope, funkar inte... inte ens enkla varianter som ^[0-9]*$ funkar. :l

LimeMedlem sedan sep. 2001837 inlägg
#4

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

Kräver inte det där Shale? Vi kör gammel-Struts (Action Framework).

LimeMedlem sedan sep. 2001837 inlägg
#6

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.

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb