2014-12-07 57 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。它也应该正确编码的网址。