如何删除struts2重定向时附加到url的className和methodName参数?
我正在使用struts2-core-2.3.4.1.jar开发struts2 web应用程序,并在struts.xml文件中的映射上使用type=redirect。这是我的代码片段:如何删除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
<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正则表达式模式匹配器应该做到这一点。