If you want another example, tacos overrides the default validation delegate for the AjaxForm component.
On 3/30/06, Mike Snare <[EMAIL PROTECTED]> wrote: > > If you're migrating to 4.0, get Kent Tong's book: Enjoying Web > Development with Tapestry. It covers 4.0. > > The first 4 chapters are free in pdf form (just google it) and chapter > 3 deals with validation. > > -Mike > > On 3/30/06, Jesse Kuhnert <[EMAIL PROTECTED]> wrote: > > 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 > > > > > > --------------------------------------------------------------------- > 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
