2009-10-07 95 views

回答

1

我使用URL重寫來獲得這些靈活的映射工作(儘管你可以在struts中正確使用它,也可能使用你自己的攔截器或其他東西)。有一個偉大的小項目,urlrewritefilter完成工作。在你的URL重寫配置你必須像一個規則:

<rule> 
    <from>^/(\d+)$</from> 
    <to>/action?id=$1</to> 
</rule> 

看一看the manual,看它是否是你在找什麼。

0
<action name="12345"> 
    <result type="redirect-action"> 
     <param name="actionName">action</param> 
     <param name="id">12345</param> 
    </result> 
</action> 

UPDATE 確定。基於下面的評論。

我在過去以這種方式管理過類似的東西。使用捕獲所有操作在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> 

然後在動作類的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 

如果你不想新的包,那麼你可以在默認包中做到這一點。

+0

我認爲他想要的東西,將根上的所有數字工作,而不僅僅是12345 – wds 2009-10-07 09:54:33

+0

謝謝!但是,正如http://stackoverflow.com/users/10098/wds所說我想要最短的網址,它可以在根目錄下的所有數字上運行,例如https://bugs.eclipse.org/291547 – 2009-10-08 02:07:29