Article View: be.comp.programming
Article #4964STRUTS Validator
From: DyXin
Date: Sun, 25 May 2003 18:13
Date: Sun, 25 May 2003 18:13
74 lines
3975 bytes
3975 bytes
Hey!
Weeral een vraagje van mij! ;-)
Deze keer omtrent Struts Validator:
ik heb enkele validatie-methodes geschreven voor m'n jaarproject, en die
werken ook, alleen is er iets mis met de error-message die je, bij foute
input, op je scherm krijgt! Dit is de code van de methode, de beschrijving
in validator-rules.xml en validation.xml:
public static boolean validateMinLengthIfExist (Object bean, ValidatorAction
va, Field field, ActionErrors errors, HttpServletRequest request)
{
String value = ValidatorUtil.getValueAsString(bean,
field.getProperty());
String minimum = field.getVarValue("min");
int min;
........
if (!GenericValidator.isBlankOrNull(value)) {
if (value.length() >= min) return true;
errors.add(field.getKey(),
StrutsValidatorUtil.getActionError(request, va, field));
return false;
}
........
}
<validator name="minLengthIfExist"
classname="be.delijn.buzzy.util.BuzzyValidator"
method="validateMinLengthIfExist"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="buzzy.error.msg.minLength"/>
<field property="correspondentieGemeente" depends="minLengthIfExist">
<arg0 key="buzzy.gezinsLid.correspondentieGemeente"/>
<arg1 name="min" key="${var:min}" resource="false"/>
<var>
<var-name>min</var-name>
<var-value>2</var-value>
</var>
</field>
buzzy.error.msg.minLength = {0} moet minstens uit {1} karakters bestaan
nu, die {0} wordt wel juist ingevuld, met name de waarde van
'buzzy.gezinsLid.correspondentieGemeente', maar {1} krijgt ALTIJD de waarde
'null', ook in andere validator-methodes die ik zelf heb geschreven en er
gelijkaardig uitzien... Nochtans hebben de standaard Validator-methodes
dezelfde error-message en structuur (op het eerste gezicht) dan die ik zelf
heb geschreven... En deze krijgen WEL altijd de juiste waarde van {1} te
zien... :-/
Weet er iemand hoe dit komt en hoe ik dit kan verhelpen (dus dat {1} wel
degelijk de juiste waarde krijgt)?
Verder nog iets over de standaard E-mail-validatie-methode: werkt die
eigenlijk wel? Want telkens ik die een veldje laat controleren en er een
willekeurig karakter in staat is da ok voor die standaard e-mail-validator
methode... Of doe ik iets verkeerd? Dit is wat ik doe:
<field property="email" depends="required,email">
<arg0 key="buzzy.gezinsLid.email"/>
</field>
Dit is toch juist dacht ik?...
thnx a lot again! ;-)
mvg,
DyXin
Technical Details
Message-ID:
<pJ7Aa.19329$1u5.1329@afrodite.telenet-ops.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-01!sn-xit-09!supernews.com!68.6.19.232.MISMATCH!west.cox.net!east.cox.net!cox.net!cyclone1.gnilink.net!in.100proofnews.com!in.100proofnews.com!newsfeed.london1.eu.level3.net!level3eu!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: 107324,89acd29991062765,start X-Google-Attributes: gid107324,public X-Google-Thread: fcea4,89acd29991062765,start X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2003-05-25 11:13:52 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-01!sn-xit-09!supernews.com!68.6.19.232.MISMATCH!west.cox.net!east.cox.net!cox.net!cyclone1.gnilink.net!in.100proofnews.com!in.100proofnews.com!newsfeed.london1.eu.level3.net!level3eu!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail From: "DyXin" <DyXin@p@ndor@.be> Newsgroups: be.comp.programming,nl.comp.programmeren Subject: STRUTS Validator Lines: 76 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Message-ID: <pJ7Aa.19329$1u5.1329@afrodite.telenet-ops.be> Date: Sun, 25 May 2003 18:13:41 GMT NNTP-Posting-Host: 213.119.145.135 X-Complaints-To: abuse@telenet.be X-Trace: afrodite.telenet-ops.be 1053886421 213.119.145.135 (Sun, 25 May 2003 20:13:41 MET DST) NNTP-Posting-Date: Sun, 25 May 2003 20:13:41 MET DST Organization: Telenet Internet