如何删除struts2重定向时附加到url的className和methodName参数?

如何删除struts2重定向时附加到url的className和methodName参数?,struts2,Struts2,我正在使用struts2-core-2.3.4.1.jar开发struts2 web应用程序,并在struts.xml文件中的映射上使用type=redirect。这是我的代码片段: <action name="{className}/{methodName}" class="controller.{1}" method="{2}"> <result name="setAttribute" type="redirect"> <param n

我正在使用struts2-core-2.3.4.1.jar开发struts2 web应用程序,并在struts.xml文件中的映射上使用type=redirect。这是我的代码片段:

<action name="{className}/{methodName}"  class="controller.{1}" method="{2}">
    <result name="setAttribute" type="redirect">
        <param name="location">${sportName}/${locationName}/${year}/${championshipName}/${groupName}/teams/${teamName}/info</param>
        <param name="teamId">${teamId}</param>
    </result>
</action>
重定向工作正常,但根据我读到的内容,我希望得到以下url: http://localhost:8080/mywebapp/soccer/italy/2011/serie-a/意甲/球队/尤文图斯/信息?球队ID=2

相反,这是显示在我的浏览器中的url: http://localhost:8080/mywebapp/soccer/italy/2011/serie-a/serie-a/teams/尤文图斯/info?teamId=2&className=ControllerTeams&methodName=setAttribute, 其中ControllerTeams和setAttribute分别是与struts.xml文件中的操作匹配的类名和方法名。 那么,我应该如何删除url末尾附加的&className=ControllerTeams&methodName=setAttribute


提前感谢您的回答。

所以不要使用namedVariable模式匹配器。使用通配符。@AleksandrM:实际上,我使用的是以下常量值:。我的问题是,当执行重定向时,我只是不希望在默认情况下将最后两个参数附加到新url,但我需要使用来自类ControllerTeams的方法setAttribute执行的参数值来创建新url。。。你能告诉我应该怎么做才能达到这个目标吗?我应该如何修改struts.xml文件?有一个与之相关的bug,但我现在找不到它,所以我不知道它是否解决了:\n只需使用默认的struts.patternMatcher并将操作名更改为使用通配符。@LukaszLenart:bug?AFAIK正则表达式模式匹配器应该做到这一点。