I Like to use URLs like host/ActionName/123/abc/
, instead of passing query string like host/ActionName?parm1=123&parm2=abc
.
How can I
You can use either the namedVariable or regex pattern matchers.
Each has its own advantages and disadvantages, most of which can be worked around.
It was not possible with plain Struts2 under the 2.1+. As a workaround you can do this with UrlRewriter filter. From Struts2 2.1+ with the help of wildcards you can use something like host/ActionNmae/param1-123/param2-abc
see this post, but not like host/ActionNmae/123/abc/
. The difference is that in the second case there's no parameter names. The workaround is to use Parameters after the action name.
@Action(value = "/ActionNmae/*/*", params = {"param1", "{1}", "param2", "{2}"}