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]
