Details
-
New Feature
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
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.
@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 https://github.com/bastengao/struts2-freeroute