使用struts2重定向URL

时间:2009-10-07 09:46:13

标签: struts2

如何使用struts2将www.mysite.com/12345重定向到www.mysite.com/action?id=12345

2 个答案:

答案 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

如果您不想要新包,则可以在默认包中执行此操作。