http://jakarta.apache.org/tapestry/tapestry/ComponentReference/Form.html
Try the form delegate parameter. For more, look at http://jakarta.apache.org/tapestry/UsersGuide/validation.html . On 3/30/06, Matt Raible <[EMAIL PROTECTED]> wrote: > > Thanks - that appears to work. However, now I've discovered that > validation doesn't work at all. In Tapestry 3.0.3, I was using a > custom ValidationDelegate that I found in Tapestry in Action. > Unfortunately, it doesn't seem to work in Tapestry 4. I'm setting it > in my page-specification using: > > <bean name="delegate" class="org.appfuse.webapp.action.Validator"/> > > Is there a different way to set this in 4.0? > > The other problem I have with this Validator in 4.0 is there's now a > nested <label> inside the <label> I'm writing. Is it possible to set > the "required" class on the <label> that Tapestry writes? > > public class Validator extends ValidationDelegate { > private static final long serialVersionUID = 6658594142293597652L; > > public void writeLabelPrefix(IFormComponent component, > IMarkupWriter writer, IRequestCycle > cycle) { > writer.begin("label"); > > if (isInError(component)) { > writer.attribute("class", "error"); > } else { > writer.attribute("class", "required"); > } > > writer.print(" * "); > } > > public void writeLabelSuffix(IFormComponent component, > IMarkupWriter writer, IRequestCycle > cycle) { > Locale locale = cycle.getEngine().getLocale(); > String marker = (locale.equals(Locale.FRENCH)) ? " :" : ":"; > writer.print(marker); > writer.end(); > } > > public void writeAttributes(IMarkupWriter writer, IRequestCycle cycle, > IFormComponent component, IValidator > validator) { > if (isInError()) { > writer.attribute("class", "error"); > } > } > > public void writeSuffix(IMarkupWriter writer, IRequestCycle cycle, > IFormComponent component, IValidator > validator) { > if (isInError(component)) { > writer.printRaw(" "); > writer.begin("img"); > > String ctxPath = cycle.getInfrastructure().getContextPath(); > writer.attribute("src", ctxPath + "/images/iconWarning.gif"); > writer.attribute("class", "validationWarning"); > writer.attribute("alt", > cycle.getPage().getMessages().getMessage("icon.warning")); > writer.end(); > > writer.printRaw(" "); > > IFieldTracking tracking = getComponentTracking(); > IRender render = tracking.getErrorRenderer(); > String error = ""; > > if (render instanceof RenderString) { > error = ((RenderString) render).getString(); > } > > writer.begin("span"); > writer.attribute("class", "fieldError"); > writer.printRaw(error); > writer.end(); > } > } > } > > Thanks, > > Matt > > > > On 3/30/06, Mike Snare <[EMAIL PROTECTED]> wrote: > > try replacing > > > > value="\\d{5}(-\\d{4})?" > > > > with > > > > value="literal:\\d{5}(-\\d{4})?" > > > > See if that works. > > > > -Mike > > > > On 3/30/06, Matt Raible <[EMAIL PROTECTED]> wrote: > > > This worked in 3.0.3: > > > > > > <bean name="zipValidator" > > > class="org.apache.tapestry.valid.PatternValidator"> > > > <set name="patternString" value="\\d{5}(-\\d{4})?"/> > > > <set name="required" value="true"/> > > > <set name="patternNotMatchedMessage" value="message:errors.zip > "/> > > > <set name="clientScriptingEnabled" value="true"/> > > > </bean> > > > > > > But this doesn't work in 4.0: > > > > > > Unable to read OGNL expression '<parsed OGNL expression>' of > > > [EMAIL PROTECTED]: Error initializing property > > > patternString of bean 'zipValidator' (of component signup): Unable to > > > parse OGNL expression '\\d{5}(-\\d{4})?': Malformed OGNL expression: > > > \\d{5}(-\\d{4})? > > > > > > Any idea how to fix this? How did the regular expression syntax > change? > > > > > > Thanks, > > > > > > Matt > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Jesse Kuhnert Tacos/Tapestry, team member/developer Open source based consulting work centered around dojo/tapestry/tacos/hivemind. http://opennotion.com
