2014-12-07 55 views
1

我使用的Struts2 +瓷磚2請求的資源不可使用Struts 2 - 瓷磚

我使用迭代器動態生成我的JSP頁面上的超鏈接,並將它們映射到一個單一的動作類。

struts.xml是:

<action name="actionName" method="execute" 
    class="myClass"> 
    <result name="error" type="tiles">/error.tiles</result> 
    // some more result tags 
</action> 

和我的超鏈接是:

<a href="/myTilesProjName/actionName?hyperlink=<s:property value="ID"/>"> 
    <s:property value="ID"/> 
</a> 

我已經聲明爲myClass字符串的超鏈接,並有getter/setter方法爲它 ,當我執行我得到404 error: requested resource ... actionName .... not available

我在哪裏出錯了?

回答

1

使用<s:a>標記生成Struts2中的鏈接。你可以用

<s:a action="actionName"><s:param name="hyperlink" value="%{ID}"/><s:property value="ID"/></s:a> 

改變你的超級鏈接如果您知道行動命名空間,那麼你也應該添加一個namespace屬性。

另一種方法是使用href屬性結合<s:url>標籤。例如

<s:url var="myHyperlinkUrl" action="actionName"><s:param name="hyperlink" value="%{ID}"/></s:url> 
<s:a href="%{#myHyperlinkUrl}"><s:property value="ID"/></s:a> 

在這種情況下,您可以通過引用其變量來重用生成的url。它也應該正確編碼的網址。