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