有人可以向我解释为什么以下代码会导致错误:根据标记文件中的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。任何帮助将不胜感激。
答案 0 :(得分:4)
您正在混合使用JSTL标记(foreach)和Struts标记(s param)。虽然有可能让它们协同工作,但为什么会遇到麻烦?
使用struts iterator 标记并转储foreach。
详情请见http://struts.apache.org/2.0.14/docs/iterator.html
理论上,使用本机struts 2标签可以实现JSTL的所有功能,因此您的应用程序可能根本不需要JSTL。