Thanks for ultra fast responses. I guess they went through AjaxComponentEventResultProcessor :-)
Until I try implementing the processor class, I found a compromise. return org.apache.tapestry5.json.JSONObject jsonObject = new org.apache.tapestry5.json.JSONObject(JSONSerializer.toJSON(userData).toString()); I found out that org.apache.tapestry5.json.JSONObject has a constructor with a String form of a JSON object. Thanks! Borut > 2010/7/8 Ulrich Stärk <u...@spielviel.de> > You'll probably want to contribute it to AjaxComponentEventResultProcessor > though. > > > On 08.07.2010 12:36, Christophe Cordenier wrote: > >> Hi >> >> You will have to create your own ComponentEventResultProcessor and >> contribute it in your AppModule class : >> >> public void contributeComponentEventResultProcessor( >> MappedConfiguration<Class, ComponentEventResultProcessor> >> configuration) { >> >> configuration.addInstance(net.sf.json.JSONObject.class, >> YouProcessor.class); >> >> } >> >> 2010/7/8 Borut Bolčina<borut.bolc...@gmail.com> >> >> Hello, >>> >>> Is it possible to configure return types? >>> >>> In one of my event methods I was trying to return net.sf.json.JSONObject >>> instead of org.apache.tapestry5.json.JSONObject and got this error >>> message: >>> >>> [ERROR] TapestryModule.RequestExceptionHandler Processing of request >>> failed >>> with uncaught exception: A component event handler method returned the >>> value >>> >>> >>> {"birthDay":"","birthMonth":"","birthYear":"","gender":"male","postOfficeNumberAndName":"1236 >>> Trzin"}. Return type net.sf.json.JSONObject can not be handled. >>> Configured >>> return types are java.lang.Class, java.lang.String, >>> org.apache.tapestry5.Link, org.apache.tapestry5.StreamResponse, >>> org.apache.tapestry5.ajax.MultiZoneUpdate, >>> org.apache.tapestry5.json.JSONArray, >>> org.apache.tapestry5.json.JSONObject, >>> org.apache.tapestry5.runtime.Component, >>> org.apache.tapestry5.runtime.RenderCommand. >>> org.apache.tapestry5.runtime.ComponentEventException: A component event >>> handler method returned the value >>> >>> >>> {"birthDay":"","birthMonth":"","birthYear":"","gender":"male","postOfficeNumberAndName":"1236 >>> Trzin"}. Return type net.sf.json.JSONObject can not be handled. >>> Configured >>> return types are java.lang.Class, java.lang.String, >>> org.apache.tapestry5.Link, org.apache.tapestry5.StreamResponse, >>> org.apache.tapestry5.ajax.MultiZoneUpdate, >>> org.apache.tapestry5.json.JSONArray, >>> org.apache.tapestry5.json.JSONObject, >>> org.apache.tapestry5.runtime.Component, >>> org.apache.tapestry5.runtime.RenderCommand. [at context:Index.tml, line >>> 20] >>> >>> >>> My event method: >>> >>> @OnEvent(component = "email", value = "blur") >>> public JSONObject checkIfUserWithThisEmailExists(String value) { >>> UserData userData = new UserData(); >>> if(value.equals("b...@example.com")) { >>> userData.setPostOfficeNumberAndName("1236 Trzin"); >>> userData.setGender("male"); >>> } else { >>> logger.info("Bob does not exist."); >>> } >>> JSONObject jsonObject = (JSONObject) >>> JSONSerializer.toJSON(userData); >>> return jsonObject; >>> } >>> >>> The reason I used net.sf.json.JSONObject is because it offers great >>> conversion and construction capabilities to/from JavaBeans/XML/JSON. Have >>> a >>> look at http://json-lib.sourceforge.net/snippets.html. >>> >>> Is it possible or do I have to construct the >>> org.apache.tapestry5.json.JSON >>> object by hand? >>> >>> Thanks, >>> Borut >>> >>> >> >> >> > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >