在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}"}
您可以使用namedVariable
或regex
模式匹配器。
每个都有自己的优点和缺点,其中大部分可以解决。