UrlRewrite Struts2设置参数变量

我正在将Tuckey UrlRewrite与Struts2应用程序结合使用。

我正在尝试将以下url:“/ promotions / abcdef-987”转换为“/ dopromotions / detail”,将变量“ ID ”转换为987

我的重写规则如下:

 ^/(promoties|promotions)/([0-9a-zA-Z\-_]+)-([0-9]+)$ $3 /dopromotions/detail  

我的Struts2 Action有以下getter和setter:

 private Integer id; public void setId(Integer id){ this.id = id; } public Integer getId(Integer id){ return id; } 

但是,变量永远不会输入。 调试时,我在参数或属性范围内的任何地方都找不到“id”。

我试过删除’type =“参数”’。 这会将“ id ”放在属性范围中,但不会在我的Integer id中输入

我不熟悉您正在使用的URL重写器,但您可以单独使用Struts2实现这种映射。

有关NamedVariablePatternMatcher信息,请参阅此答案 。 您需要在struts.xml中设置以下常量:

    

然后,将您的操作映射为:

   ...