1

有人可以向我解释为什么以下代码会导致错误:根据标记文件中的 TLD 或属性指令,属性值不接受任何表达式。每当我尝试为 URL 的参数动态设置值时,它总是会中断。

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<c:forEach var="v" items="${files}">
    ${v} <a href='<s:url action="DeleteFile"><s:param name="fileName" value="${v}" /></s:url>'>Delete</a><br />
</c:forEach>

我正在使用 Struts 2 和最新版本的 Java。任何帮助,将不胜感激。

4

1 回答 1

4

您正在混合 JSTL 标记(foreach)和 Struts 标记(s 参数)。虽然可以让它们一起工作,但为什么会陷入困境呢?

使用 struts迭代器标签并转储 foreach。

详见http://struts.apache.org/2.0.14/docs/iterator.html

理论上,可以使用 JSTL 完成的所有事情都可以使用原生 struts 2 标记,因此您的应用程序可能根本不需要 JSTL。

于 2009-03-29T09:48:50.660 回答