struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lukasz Lenart (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (WW-4366) Action methods should accept arguments like @QueryParam, @FormParam, @PathParam and specific request methods GET, PUT, POST etc
Date Fri, 27 Jun 2014 08:41:26 GMT

     [ https://issues.apache.org/jira/browse/WW-4366?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Lukasz Lenart updated WW-4366:
------------------------------

    Description: 
Struts2 action methods should accept arguments just like JAX-RS specs. Also certain method
types should be allowed only like GET, PUT, POST, DELTE. 
Inspiration might be taken from struts-json plugin @SMDMthod but that is not a real action
method. 

If there are multiple action methods in a Action class then it becomes less obvious which
variables are used for a particular action method. 

Ex.
{code:java}
    @ActionPath("/books/{id}")
    public String showAction(@PathParam("id") String id,
                                            @QueryParam("name") String name) {
		...
		return "success";
    }
{code}

Also flexible return types as defined in JAX-RS would be great or atleast 
{code:java}
Result.json(myObject).includeActionErrors().includeActionMessages().done();
Result.string(myString).done();
Result.create("json").from(myObject).param("includeActionErrors,includeActionMessages").done();
{code}

The action method return type can be to denote builder like result. The closest in struts
I can see is HttpHeaderResult. But this does not allow arbritrary string result and let the
end user create the string as json or plain text. 
{code:java}
   @Action
   public Result showAction(...){}
{code}
Inspiration can be taken from struts2-json-plugin#SMDMethod and https://github.com/bastengao/struts2-freeroute

  was:
Struts2 action methods should accept arguments just like JAX-RS specs. Also certain method
types should be allowed only like GET, PUT, POST, DELTE. 
Inspiration might be taken from struts-json plugin @SMDMthod but that is not a real action
method. 

If there are multiple action methods in a Action class then it becomes less obvious which
variables are used for a particular action method. 

Ex.
```
    @ActionPath("/books/{id}")
    public String showAction(@PathParam("id") String id,
                                            @QueryParam("name") String name) {
		...
		return "success";
    }
```
Also flexible return types as defined in JAX-RS would be great or atleast `Result.json(myObject).includeActionErrors().includeActionMessages().done();`
`Result.string(myString).done();`
`Result.create("json").from(myObject).param("includeActionErrors,includeActionMessages").done();`
The action method return type can be to denote builder like result. The closest in struts
I can see is HttpHeaderResult. But this does not allow arbritrary string result and let the
end user create the string as json or plain text. 
```
   @Action
   public Result showAction(...){}
````
Inspiration can be taken from struts2-json-plugin#SMDMethod and [struts2-freeroute-plugin](https://github.com/bastengao/struts2-freeroute)


> Action methods should accept arguments like  @QueryParam, @FormParam, @PathParam and
specific request methods GET, PUT, POST  etc
> ---------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WW-4366
>                 URL: https://issues.apache.org/jira/browse/WW-4366
>             Project: Struts 2
>          Issue Type: New Feature
>          Components: Core Actions
>            Reporter: samarjit samanta
>              Labels: features
>             Fix For: 2.5
>
>
> Struts2 action methods should accept arguments just like JAX-RS specs. Also certain method
types should be allowed only like GET, PUT, POST, DELTE. 
> Inspiration might be taken from struts-json plugin @SMDMthod but that is not a real action
method. 
> If there are multiple action methods in a Action class then it becomes less obvious which
variables are used for a particular action method. 
> Ex.
> {code:java}
>     @ActionPath("/books/{id}")
>     public String showAction(@PathParam("id") String id,
>                                             @QueryParam("name") String name) {
> 		...
> 		return "success";
>     }
> {code}
> Also flexible return types as defined in JAX-RS would be great or atleast 
> {code:java}
> Result.json(myObject).includeActionErrors().includeActionMessages().done();
> Result.string(myString).done();
> Result.create("json").from(myObject).param("includeActionErrors,includeActionMessages").done();
> {code}
> The action method return type can be to denote builder like result. The closest in struts
I can see is HttpHeaderResult. But this does not allow arbritrary string result and let the
end user create the string as json or plain text. 
> {code:java}
>    @Action
>    public Result showAction(...){}
> {code}
> Inspiration can be taken from struts2-json-plugin#SMDMethod and https://github.com/bastengao/struts2-freeroute



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message