在Struts 2中传递URL中没有查询字符串的参数

我喜欢使用host/ActionName/123/abc/这样的URL,而不是像host/ActionName?parm1=123&parm2=abc那样传递查询字符串host/ActionName?parm1=123&parm2=abc

我怎么能在Struts2中做到这一点?

我完成如下。 但它不起作用,显示500错误代码

     {1} views.jsp   

在2.1+下使用普通的Struts2是不可能的。 作为解决方法,您可以使用UrlRewriterfilter执行此操作。 从Struts2 2.1+到通配符的帮助你可以使用类似host/ActionNmae/param1-123/param2-abc看看这篇文章,但不像host/ActionNmae/123/abc/ 。 不同之处在于,在第二种情况下,没有参数名称。 解决方法是在操作名称后使用参数 。

 @Action(value = "/ActionNmae/*/*", params = {"param1", "{1}", "param2", "{2}"} 

您可以使用namedVariableregex模式匹配器。

每个都有自己的优点和缺点,其中大部分可以解决。