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