2012-08-23 59 views
0

我有很多的目的地(比如150+)和每個目標有2點不同的變體:我如何可以重定向URL到具體頁面,用struts 2

  • 一個

我有爲每個這些變體生成一個html。對於如:

  • 紐約-A.html
  • 紐約-B.html
  • SanFrancisco的-A.html
  • SanFrancisco的-B.html
  • LasVegas-A.html
  • LasVegas -B.html ...

通用格式爲:

  • 目的 - A.html
  • 目的 - B.html

每個文件被寫入到/seo/Destination/

我該如何映射一個給定的URL將這些文件在Struts 2:

www.mysite.com/NewYork-Tourism =>www.mysite.com/seo/Destinations/NewYork-A.html AND www.mysite.com/NewYork-Travel =>www.mysite.com/seo/Destinations/NewYork-B.html

通用:

www.mysite.com/Destination-Tourism =>www.mysite.com/seo/Destinations/Destination-A.html

AND

www.mysite.com/Destination-Travel =>www.mysite.com/seo/Destinations/Destination-B.html


我能想到的一種方法是產生與(destination * variant_types)一樣多的動作,然後將每個結果映射到正確的html文件。事情是這樣的:

<action name="NewYork-Tourism"> 
    <result name="success">/seo//Destination/NewYork-A.html</result> 
</action> 
<action name="NewYork-Travel"> 
    <result name="success">/seo//Destination/NewYork-B.html</result> 
</action> 

..等等

是否有任何其他(更好)的方式來做到這一點?

回答

3

在我看來,一種qquick方式是利用通配符映射,Struts2有一種方式,即通配符,它​​似乎更適合你。

隨着應用程序規模的增大,動作映射的數量也會隨之增加。通配符可用於將類似的映射組合成一個更通用的映射。

<action name="List*s" class="actions.List{1}s"> 
    <result>list{1}s.jsp</result> 
</action> 

欲瞭解更多詳細信息,請參閱文件

+0

除了做出許多動作之外,還有其他方式可以做到嗎? – brainydexter

+1

有什麼動作?如果你沒有具體的類名,S2會爲你創建一個默認的動作OOB –

0

它也可以做其他的方式,在方法公共字符串執行()在你的動作類中,如果其他東西你將會嵌套。例如,如果語句是紐約和用戶選擇旅遊的第一個,你會返回一個值,「新紐約旅遊」

這在我們的struts.xml中的情況下

<action name="Destinations" method="execute" class="Your Class Location"> 
<result name="New-York-Tourism">/seo//Destination/NewYork-Tourism.html</result> 
<result name="New-York-Travel">/seo//Destination/NewYork-Travel.html</result> 
. . . . . . 

相關問題