使用Struts 2 - Tiles无法获得请求的资源

时间:2014-12-07 03:57:42

标签: java jsp struts2 hyperlink tiles

我正在使用Struts2 + Tiles 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 个答案:

答案 0 :(得分:1)

Struts2中的链接是使用<s:a>标记生成的。您可以使用

更改超链接
<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。它也应该正确编码网址。