i tested it here in my demo app. if i delete the session cookie the the onevent result is empty even though i refresh the page !?!?
2008/5/8 Sven Homburg <[EMAIL PROTECTED]>: > is there the same behavior if the restart the browser? > > > 2008/5/8 lebenski <[EMAIL PROTECTED]>: > > > > > for real testing i think its better to delete the cookie and refresh the > > page > > before you initiate the ajax request cycle. > > > > This is exactly what i'm doing. I've also tried this from a fresh, > > non-dev > > machine. I hit my server without doing any shenanigans with deleting > > cookies and I get the same issue %-|. > > > > > > Sven Homburg wrote: > > > > > > thats not correct, > > > the session id ommited by the servlet by every > > > request to the browser > > > > > > so if the user starts the browser > > > and request the www.blabla.com/servletcontext/login or whatever > > > the servlet container response the session id > > > > > > if you delete the cookie or remove the session id from url > > > the server cant handle the ajax request (not sure for that but sounds > > > logical for me) > > > > > > for real testing i think its better to delete the cookie and refresh > > the > > > page > > > before you initiate the ajax request cycle. > > > > > > 2008/5/8 lebenski <[EMAIL PROTECTED]>: > > > > > >> > > >> I'm replicating the state in which a new user will hit the site, they > > >> won't > > >> have any of the cookies set by Tapestry. > > >> > > >> > > >> Sven Homburg wrote: > > >> > > > >> > why do you delete the cookies ? > > >> > > > >> > 2008/5/8 lebenski <[EMAIL PROTECTED]>: > > >> > > > >> >> > > >> >> Hi guys, > > >> >> > > >> >> Ok i've got an urgent problem. I'm using tapestry to develop a > > web > > >> app, > > >> >> which I have to present tomorrow to some very important people! > > >> >> > > >> >> I've got a very frustrating problem. I will try to explain it as > > >> clearly > > >> >> as > > >> >> possible. > > >> >> > > >> >> I'm using the t5components/OnEvent Mixin to call back to Tapestry > > >> >> 'onChange' > > >> >> of a textfield. > > >> >> > > >> >> TML: > > >> >> > > >> >> <t:form t:id="registerBasicForm" t:class="gamesysForm" > > >> >> zone="registerBasicZone"> > > >> >> .... > > >> >> <t:label for="registerbasic_userName"> > > >> >> User Name: > > >> >> </t:label> > > >> >> <t:textfield > > t:id="registerbasic_userName" > > >> >> t:value="userName" > > >> >> event="change" onfocus="showFieldHint('4-16 > > >> >> characters');showFieldError('registerbasic_userName');"/> > > >> >> > > >> >> .... > > >> >> </t:form> > > >> >> > > >> >> Page Class: > > >> >> > > >> >> @Component(id = "registerbasic_userName", parameters = { > > >> "event=change", > > >> >> > > >> >> "onCompleteCallback=checkForServerValidationErrors" > > >> >> }) > > >> >> @Mixins("t5components/OnEvent") > > >> >> private TextField userNameField; > > >> >> > > >> >> ... > > >> >> > > >> >> @OnEvent(component = "registerbasic_userName", value = > > >> "change") > > >> >> public JSONObject onChangeFromUserName(String value) { > > >> >> System.out.println("onChangeFromUserName"); > > >> >> JSONObject json = new JSONObject(); > > >> >> Boolean userNameExists = false; > > >> >> > > >> >> Pattern p = > > >> >> Pattern.compile(messages.get("alphanumeric-regex")); > > >> >> Matcher m = p.matcher(value); > > >> >> boolean validUserName = m.find(); > > >> >> > > >> >> if (validUserName) { > > >> >> try { > > >> >> userNameExists = > > >> >> hydraService.userNameExists(value); > > >> >> } catch (ServiceFaultException x) { > > >> >> logger.error("----fault : " + > > >> >> x.getFault().getMessage()); > > >> >> } catch (ServiceProblemException x) { > > >> >> logger.error("----problem:" + x); > > >> >> } > > >> >> > > >> >> if (userNameExists) { > > >> >> json.put("error", "true"); > > >> >> json > > >> >> .append("message", > > >> >> "Username " + value > > >> >> + " > > is > > >> >> taken"); > > >> >> } else { > > >> >> json.put("error", "false"); > > >> >> json.append("message", ""); > > >> >> } > > >> >> > > >> >> } else { > > >> >> json.put("error", "true"); > > >> >> json.append("message", "Field contains > > invalid > > >> >> characters"); > > >> >> } > > >> >> > > >> >> json.append("submitid", "submitRegisterBasic"); > > >> >> json.append("field", "registerbasic_userName"); > > >> >> System.out.println(json.get("error") + " " + > > >> >> json.get("field") + " " > > >> >> + json.get("message")); > > >> >> > > >> >> return json; > > >> >> } > > >> >> > > >> >> Javascript: > > >> >> > > >> >> function checkForServerValidationErrors(response){ > > >> >> > > >> >> var json = response.evalJSON(); > > >> >> var elementId = json.field.toString(); > > >> >> > > >> >> //This MUST be done first > > >> >> performTypeValidation(elementId); > > >> >> > > >> >> if (json!=null && json.error == 'true' && > > >> >> formErrors[elementId]==null) > > >> >> { > > >> >> > > addFormValidationError(elementId,json.message); > > >> >> } > > >> >> > > >> >> > > >> >> processValidationErrors(elementId,json.submitid.toString()); > > >> >> } > > >> >> > > >> >> So, what happens is, when the user types a value into 'userName', > > and > > >> >> exits > > >> >> the field (onChange seems to act like onBlur), it calls back to > > >> Tapestry > > >> >> which executes the onChangeFromUserName(String value) method to > > check > > >> if > > >> >> the > > >> >> username exists in the database. This then calls back to the > > >> javascript > > >> >> function (defined in the Component annotation) with a JSON object. > > >> The > > >> >> javascript is used for client side validation/presentational > > stuff. > > >> >> > > >> >> This all works fine under normal conditions. HOWEVER, when I > > clear my > > >> >> cookies and do the same action (type a value into 'username' and > > tab > > >> >> out), > > >> >> i > > >> >> get a javascript error 'json.field has no properties'. The server > > >> side > > >> >> method (onChangeFromUserName) isn't getting called (I can tell > > because > > >> it > > >> >> doesnt hit System.out.println("onChangeFromUserName");), BUT it is > > >> >> calling > > >> >> back to the javascript function. Rightly so, the javascript is > > >> >> complaining > > >> >> because the JSON object hasn't been passed in. > > >> >> > > >> >> 2 cookies are getting set, JSESSIONID and UTRACK, and they do get > > sent > > >> >> both > > >> >> on the initial request (right after i've cleared my cookies) and > > the > > >> >> request > > >> >> after. But for some reason, i'm not hitting the server method on > > the > > >> >> initial request. > > >> >> > > >> >> I have used tamper data to analyse both requests and they appear > > to be > > >> >> identical. Both cookies are getting sent, all the headers are > > >> identical. > > >> >> > > >> >> I am at a real loss and starting to panic about this. I'm > > starting to > > >> >> think > > >> >> that Tapestry needs a request to properly set up the session, > > before > > >> you > > >> >> can > > >> >> actually call back to it, but this is only a hunch. > > >> >> > > >> >> I really need to get this sorted, if you have any ideas then > > please > > >> help! > > >> >> -- > > >> >> View this message in context: > > >> >> > > >> > > http://www.nabble.com/T5%3A-Urgent-Problem.-After-clearing-cookies-communication-between-client-and-tapestry-breaks-on-first-request-tp17123771p17123771.html > > >> >> Sent from the Tapestry - User mailing list archive at Nabble.com. > > >> >> > > >> >> > > >> >> > > --------------------------------------------------------------------- > > >> >> To unsubscribe, e-mail: [EMAIL PROTECTED] > > >> >> For additional commands, e-mail: [EMAIL PROTECTED] > > >> >> > > >> >> > > >> > > > >> > > > >> > -- > > >> > with regards > > >> > Sven Homburg > > >> > http://tapestry5-components.googlecode.com > > >> > > > >> > > > >> > ----- > > >> > best regards > > >> > Sven > > >> > > > >> > > >> -- > > >> View this message in context: > > >> > > http://www.nabble.com/T5%3A-Urgent-Problem.-After-clearing-cookies-communication-between-client-and-tapestry-breaks-on-first-request-tp17123771p17123963.html > > >> Sent from the Tapestry - User mailing list archive at Nabble.com. > > >> > > >> > > >> --------------------------------------------------------------------- > > >> To unsubscribe, e-mail: [EMAIL PROTECTED] > > >> For additional commands, e-mail: [EMAIL PROTECTED] > > >> > > >> > > > > > > > > > -- > > > with regards > > > Sven Homburg > > > http://tapestry5-components.googlecode.com > > > > > > > > > ----- > > > best regards > > > Sven > > > > > > > -- > > View this message in context: > > http://www.nabble.com/T5%3A-Urgent-Problem.-After-clearing-cookies-communication-between-client-and-tapestry-breaks-on-first-request-tp17123771p17124134.html > > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > with regards > Sven Homburg > http://tapestry5-components.googlecode.com > -- with regards Sven Homburg http://tapestry5-components.googlecode.com