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
>
>

Reply via email to