Josh
Josh

Reputation: 10604

Struts 2 URL Parameter inside foreach

Can someone explain to me why the following code results in the error: According to TLD or attribute directive in tag file, attribute value does not accept any expressions. It always breaks whenever I am trying to set the value dynamically for the parameter of the 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>

I'm using Struts 2 and the latest version of Java. Any help would be appreciated.

Upvotes: 1

Views: 4829

Answers (1)

kazanaki
kazanaki

Reputation: 8054

You are mixing JSTL tags (the foreach) and Struts tags (the s param). Although it is possible to make them work together, why get into trouble?

Use the struts iterator tag and dump the foreach.

See details at http://struts.apache.org/2.0.14/docs/iterator.html

In theory everything that can be done with JSTL is possible with native struts 2 tags, so your application should probably not need JSTL at all.

Upvotes: 4

Related Questions