That would be closer to RPC, but would be less "strutish", I think you could
easily extend the JSON plugin to accomplish this.
musachy
On Thu, Sep 4, 2008 at 3:57 PM, Tom McLaughlin <[EMAIL PROTECTED]>wrote:
> Hi All,
>
> I've got a javascript front-end that makes asynchronous requests to perform
> various CRUD operations. Ideally, I'd like to write an Action and expose
> it
> directly to my client using JSONUtils to serialize and deserialize my
> objects. The JSON plugin gets me close, but I don't like having to expose
> data as a side-effect of calling my Action's methods. For example,
> presently I might have an Action that looks like this...
>
> class PersonAction {
> @Inject...
> PersonDAO dao;
>
> Person person;
> String id;
>
> public String create(){
> person = dao.create(person);
> return SUCCESS.
> }
>
> public String retrieve(){
> dao.load(id);
> }
>
> //getters and setters for person and id go here
>
> }
>
> But I'd rather have an Action that looks like this...
>
> class PersonAction {
> @Inject...
> PersonDAO dao;
>
> public void create(Person person){
> dao.create(person);
> }
> public Person retrieve(String id) {
> return dao.load(id);
> }
> ...
> }
>
> Person would be an entity class, e.g.
>
> class Person {
> String firstName;
> String lastName;
> //getters and setters for firstName and lastName go here...
> }
>
> The SMD annotations in the JSON plugin come close, but I'd like to go the
> extra step and not be confined to my client sending "method", "id", and
> "params" parameters. So in the above example I'd post to
> /person!create.action with JSON like {firstName : 'Theodore',
> lastName:'Koppel'}, i.e. the JSON analogue of my "Person" object.
>
> Has anyone tried anything like this? I've started looking at creating the
> Interceptor and Result classes to support this, but I'd like to know if
> other folks are doing similar things and if what I'm seeking to do is even
> possible, knowing I'll likely have to develop a plugin to support the idea.
> Any thoughts?
>
> Thanks,
> Tom
>
--
"Hey you! Would you help me to carry the stone?" Pink Floyd