我正在使用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
答案 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。它也应该正确编码网址。