Hi, I wasn't the one with the problem, and I'm not sure that Levi ever said what was specifically wrong. Post the specifics of your problem in a separate thread and I'm sure someone will be able to help.
Josh On Thu, Oct 22, 2009 at 6:23 AM, superslip103 <rohit.triv...@db.com> wrote: > > Hi Josh > What was your encoding issue? I'm having the same issue here with a > SelectBox Encoder. > > Ro > > > xfile80303 wrote: >> >> >> Thanks Josh! >> >> You helped me identify that it was an encoder issue on my end. >> >> I appreciate your help. :) >> >> Cheers, >> >> Levi >> >> >> Josh Canfield wrote: >>> >>> The only change I made was making isValid into a property and a >>> checkbox in the form so I could switch between behaviors. >>> >>> Here is the complete code that works for me. >>> >>> public class Index { >>> @Component >>> private Zone nothingSelectedZone; >>> >>> @Component >>> private Form _parts; >>> >>> @Property >>> private boolean errorVisible; >>> >>> @Property >>> private boolean resultsVisible = true; >>> >>> @Property >>> private boolean _valid; >>> >>> @InjectPage >>> private LoopedForm otherPage; // a random page I have in my >>> experiments project. >>> >>> void onValidateFormFromParts() { >>> if (_valid) { >>> _parts.recordError("No items selected."); >>> } else { >>> resultsVisible = true; >>> _parts.clearErrors(); >>> } >>> errorVisible = _parts.getHasErrors(); >>> } >>> >>> Object onSuccessFromParts() { >>> return otherPage; >>> } >>> >>> Object onFailureFromParts() { >>> return nothingSelectedZone.getBody(); >>> } >>> } >>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> <!DOCTYPE html >>> PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" >>> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> >>> >>> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd" >>> xmlns="http://www.w3.org/1999/xhtml" >>> xml:lang="en" >>> lang="en"> >>> <head> >>> <title>Experiment Home</title> >>> </head> >>> <body> >>> >>> <t:zone t:id="nothingSelectedZone" id="nothingSelectedZone" >>> visible="${errorVisible}"> >>> No items have been selected. >>> </t:zone> >>> <t:zone t:id="resultsZone" id="resultsZone" visible="${resultsVisible}"> >>> <form t:id="parts" t:zone="nothingSelectedZone"> >>> <t:checkbox value="valid"/> >>> <input type="button" t:type="submit" value="Do It"/> >>> </form> >>> </t:zone> >>> >>> </body> >>> </html> >>> >>> On Fri, Oct 2, 2009 at 6:03 PM, xfile80303 <l...@grokers.net> wrote: >>>> >>>> Hi Josh, >>>> >>>> Thanks for looking. >>>> >>>> I'm afraid the stack trace I provided is a red herring and does not have >>>> any >>>> bearing on the situation. It comes from the fact that my encoder was >>>> getting purged from the session due to it being set as FLASH only. And >>>> this >>>> exception actually only happens after I changed the code from: >>>> >>>> <form t:id="parts" t:zone="nothingSelectedZone"> >>>> to >>>> <form t:id="parts" t:zone="resultsZone"> >>>> >>>> which actually works... it's as if something in the form needs to be >>>> rebuilt >>>> after the submit. >>>> >>>> You say you were able to get my code to work? As is, or did you need to >>>> make >>>> changes? I'd still like to have the flexibility to refresh the >>>> nothingSelectedZone and not touch the resultsZone. >>>> >>>> Cheers, >>>> >>>> Levi >>>> >>>> >>>> Josh Canfield wrote: >>>>> >>>>> Your example code works fine and the exception you provide makes it >>>>> look like you're in a loop? >>>>> >>>>>> Caused by: java.lang.NullPointerException >>>>>> at >>>>>> org.apache.tapestry5.corelib.components.Loop.restoreStateFromStoredClientValue(Loop.java:457) >>>>> >>>>> That line from the code: >>>>> // We assume that if an encoder is available when we rendered, >>>>> that one will be available >>>>> // when the form is submitted. >>>>> Object restoredValue = encoder.toValue(clientValue); >>>>> >>>>> Makes me think that you aren't getting an encoder? >>>>> >>>>> Can you provide a simple and complete example that breaks? >>>>> Josh >>>>> >>>>> On Fri, Oct 2, 2009 at 4:50 PM, xfile80303 <l...@grokers.net> wrote: >>>>>> >>>>>> Okay, I have some more information... >>>>>> >>>>>> When I click on the submit button, after the validation error, I see >>>>>> this >>>>>> in >>>>>> the log: >>>>>> >>>>>> ERROR [http-8080-5: RequestExceptionHandler]: Processing of request >>>>>> failed >>>>>> with uncaught exception: >>>>>> org.apache.tapestry5.runtime.ComponentEventException >>>>>> org.apache.tapestry5.runtime.ComponentEventException [at >>>>>> classpath:com/java/dse/cwp/eos/pages/Search.tml, line 106] >>>>>> at >>>>>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1098) >>>>>> at >>>>>> org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:107) >>>>>> at >>>>>> $ComponentEventRequestHandler_12417a4b929.handle($ComponentEventRequestHandler_12417a4b929.java) >>>>>> at >>>>>> org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42) >>>>>> at >>>>>> $ComponentEventRequestHandler_12417a4b92b.handle($ComponentEventRequestHandler_12417a4b92b.java) >>>>>> at >>>>>> org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2164) >>>>>> at >>>>>> $ComponentEventRequestHandler_12417a4b92b.handle($ComponentEventRequestHandler_12417a4b92b.java) >>>>>> at >>>>>> $ComponentEventRequestHandler_12417a4b911.handle($ComponentEventRequestHandler_12417a4b911.java) >>>>>> at >>>>>> org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43) >>>>>> at >>>>>> $ComponentRequestHandler_12417a4b80d.handleComponentEvent($ComponentRequestHandler_12417a4b80d.java) >>>>>> at >>>>>> org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46) >>>>>> at >>>>>> $Dispatcher_12417a4b819.dispatch($Dispatcher_12417a4b819.java) >>>>>> at >>>>>> $Dispatcher_12417a4b80a.dispatch($Dispatcher_12417a4b80a.java) >>>>>> at >>>>>> org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:245) >>>>>> at >>>>>> org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) >>>>>> at >>>>>> $RequestHandler_12417a4b80b.service($RequestHandler_12417a4b80b.java) >>>>>> at >>>>>> org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:778) >>>>>> at >>>>>> $RequestHandler_12417a4b80b.service($RequestHandler_12417a4b80b.java) >>>>>> at >>>>>> org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:767) >>>>>> at >>>>>> $RequestHandler_12417a4b80b.service($RequestHandler_12417a4b80b.java) >>>>>> at >>>>>> org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) >>>>>> at >>>>>> $RequestHandler_12417a4b80b.service($RequestHandler_12417a4b80b.java) >>>>>> at >>>>>> com.java.dse.cwp.eos.services.EosModule$1.service(EosModule.java:254) >>>>>> at >>>>>> $RequestFilter_12417a4b806.service($RequestFilter_12417a4b806.java) >>>>>> at >>>>>> $RequestHandler_12417a4b80b.service($RequestHandler_12417a4b80b.java) >>>>>> at >>>>>> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90) >>>>>> at >>>>>> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81) >>>>>> at >>>>>> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) >>>>>> at >>>>>> org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103) >>>>>> at >>>>>> $RequestHandler_12417a4b80b.service($RequestHandler_12417a4b80b.java) >>>>>> at >>>>>> $RequestHandler_12417a4b800.service($RequestHandler_12417a4b800.java) >>>>>> at >>>>>> org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:197) >>>>>> at >>>>>> org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) >>>>>> at >>>>>> $HttpServletRequestHandler_12417a4b802.service($HttpServletRequestHandler_12417a4b802.java) >>>>>> at >>>>>> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) >>>>>> at >>>>>> $HttpServletRequestFilter_12417a4b7ff.service($HttpServletRequestFilter_12417a4b7ff.java) >>>>>> at >>>>>> $HttpServletRequestHandler_12417a4b802.service($HttpServletRequestHandler_12417a4b802.java) >>>>>> at >>>>>> org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:726) >>>>>> at >>>>>> $HttpServletRequestHandler_12417a4b802.service($HttpServletRequestHandler_12417a4b802.java) >>>>>> at >>>>>> $HttpServletRequestHandler_12417a4b7fd.service($HttpServletRequestHandler_12417a4b7fd.java) >>>>>> at >>>>>> org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127) >>>>>> at >>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >>>>>> at >>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >>>>>> at >>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) >>>>>> at >>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) >>>>>> at >>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) >>>>>> at >>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >>>>>> at >>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >>>>>> at >>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) >>>>>> at >>>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) >>>>>> at >>>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) >>>>>> at >>>>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) >>>>>> at java.lang.Thread.run(Thread.java:637) >>>>>> Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException >>>>>> [at >>>>>> classpath:com/java/dse/cwp/eos/pages/Search.tml, line 130] >>>>>> at >>>>>> org.apache.tapestry5.corelib.components.Form.executeStoredActions(Form.java:495) >>>>>> at >>>>>> org.apache.tapestry5.corelib.components.Form._$advised$onAction(Form.java:378) >>>>>> at >>>>>> org.apache.tapestry5.corelib.components.Form$onAction$invocation_12417a50156.invokeAdvisedMethod(Form$onAction$invocation_12417a50156.java) >>>>>> at >>>>>> org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:71) >>>>>> at >>>>>> org.apache.tapestry5.ioc.internal.services.LoggingAdvice.advise(LoggingAdvice.java:37) >>>>>> at >>>>>> org.apache.tapestry5.internal.transform.LogWorker$1.advise(LogWorker.java:54) >>>>>> at >>>>>> org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:80) >>>>>> at >>>>>> org.apache.tapestry5.corelib.components.Form.onAction(Form.java) >>>>>> at >>>>>> org.apache.tapestry5.corelib.components.Form.dispatchComponentEvent(Form.java) >>>>>> at >>>>>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:910) >>>>>> at >>>>>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1081) >>>>>> ... 52 more >>>>>> Caused by: java.lang.NullPointerException >>>>>> at >>>>>> org.apache.tapestry5.corelib.components.Loop.restoreStateFromStoredClientValue(Loop.java:457) >>>>>> at >>>>>> org.apache.tapestry5.corelib.components.Loop.access$500(Loop.java:44) >>>>>> at >>>>>> org.apache.tapestry5.corelib.components.Loop$RestoreStateFromStoredClientValue.execute(Loop.java:165) >>>>>> at >>>>>> org.apache.tapestry5.corelib.components.Loop$RestoreStateFromStoredClientValue.execute(Loop.java:154) >>>>>> at >>>>>> org.apache.tapestry5.corelib.components.Form.executeStoredActions(Form.java:480) >>>>>> ... 62 more >>>>>> >>>>>> >>>>>> I would really appreciate some help understanding why this is broken. >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Levi >>>>>> >>>>>> >>>>>> xfile80303 wrote: >>>>>>> >>>>>>> Hello all, >>>>>>> >>>>>>> I'm seing some interesting behavior I hope you can help me sort out. >>>>>>> >>>>>>> I have a form which I would like to display an error message (custom) >>>>>>> should the form validation fail. I'd like to do this via AJAX since >>>>>>> the >>>>>>> contents of the form are created via AJAX and refreshing the page to >>>>>>> display this error message will lose this context. >>>>>>> >>>>>>> So, I have something like this: >>>>>>> >>>>>>> <t:zone t:id="nothingSelectedZone" id="nothingSelectedZone" >>>>>>> visible="${errorVisible}"> >>>>>>> No items have been selected. >>>>>>> </t:zone> >>>>>>> >>>>>>> <t:zone t:id="resultsZone" id="resultsZone" >>>>>>> visible="${resultsVisible}"> >>>>>>> <form t:id="parts" t:zone="nothingSelectedZone"> >>>>>>> <input type="button" t:type="submit" value="Do It"/> >>>>>>> </form> >>>>>>> </t:zone> >>>>>>> >>>>>>> void onValidateFormFromParts() >>>>>>> { >>>>>>> if (isValid()) >>>>>>> { >>>>>>> _parts.recordError("No items selected."); >>>>>>> } >>>>>>> else >>>>>>> { >>>>>>> _parts.clearErrors(); >>>>>>> } >>>>>>> errorVisible = _parts.getHasErrors(); >>>>>>> } >>>>>>> >>>>>>> Object onSuccessFromParts() >>>>>>> { >>>>>>> return otherPage; >>>>>>> } >>>>>>> >>>>>>> Object onFailureFromParts() >>>>>>> { >>>>>>> return nothingSelectedZone.getBody(); >>>>>>> } >>>>>>> >>>>>>> If there's no error with validation, the success method gets called >>>>>>> fine, >>>>>>> and I am redirected to the otherPage. >>>>>>> If there is an error with validation, the nothingSelectedZone is >>>>>>> updated >>>>>>> and the error message is displayed. >>>>>>> However, if, after a validation error I try to re-submit the form, >>>>>>> nothing >>>>>>> happens at all. I've put breakpoints in my debugger on these three >>>>>>> methods and they don't get hit in this case. It's as if the form >>>>>>> submit >>>>>>> is not taking place after the initial validation error. >>>>>>> >>>>>>> I'd love some input. >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Levi >>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>>> View this message in context: >>>>>> http://n2.nabble.com/T5-1-AJAX-Form-Validation-tp3753039p3758403.html >>>>>> Sent from the Tapestry Users mailing list archive at Nabble.com. >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> -- >>>>> TheDailyTube.com. Sign up and get the best new videos on the internet >>>>> delivered fresh to your inbox. >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>>>> For additional commands, e-mail: users-h...@tapestry.apache.org >>>>> >>>>> >>>>> >>>> >>>> -- >>>> View this message in context: >>>> http://n2.nabble.com/T5-1-AJAX-Form-Validation-tp3753039p3758648.html >>>> Sent from the Tapestry Users mailing list archive at Nabble.com. >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>>> For additional commands, e-mail: users-h...@tapestry.apache.org >>>> >>>> >>> >>> >>> >>> -- >>> -- >>> TheDailyTube.com. Sign up and get the best new videos on the internet >>> delivered fresh to your inbox. >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >>> >>> >> >> -- >> View this message in context: >> http://n2.nabble.com/T5-1-AJAX-Form-Validation-tp3753039p3771514.html >> Sent from the Tapestry Users mailing list archive at Nabble.com. >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> >> > > -- > View this message in context: > http://www.nabble.com/-T5.1--AJAX-Form-Validation-tp25709062p26009821.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > -- -- TheDailyTube.com. Sign up and get the best new videos on the internet delivered fresh to your inbox. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org