如何使用struts2将www.mysite.com/12345
重定向到www.mysite.com/action?id=12345
?
答案 0 :(得分:1)
我使用URL重写来使这些灵活的映射工作(虽然你可以在struts中正确地执行它,可能使用你自己的拦截器或其他东西)。有一个很棒的小项目urlrewritefilter可以完成工作。在您的网址重写配置中,您有一条规则:
<rule>
<from>^/(\d+)$</from>
<to>/action?id=$1</to>
</rule>
查看the manual,了解它是否符合您的要求。
答案 1 :(得分:0)
<action name="12345">
<result type="redirect-action">
<param name="actionName">action</param>
<param name="id">12345</param>
</result>
</action>
<强>更新强> 好。基于以下评论。
我过去以这种方式管理过这样的事情。使用catch all action在struts中创建一个包。
<package name="numbers">
<action name="*" class="my.package.ActionClass" method="urlrewrite">
<result type="redirect-action">
<param name="actionName">${nextpage}</param>
<param name="id">${id}</param>
</result>
</action>
</package>
然后在action类的urlrewrite方法中:
public String urlrewrite(){
//parse the url and determine the ID and the next page
nextpage = "action";
id = "12345";
return SUCCESS;
}
所以在调用动作时你必须这样做:
http://www.mysite.com/numbers/12345.action
如果您不想要新包,则可以在默认包中执行此操作。