O que há de errado nesse código
<logic:iterate id="product" scope="request" name="listProduct">
<bean:write name="product" property="name"/>
<fmt:formatDate value="${product.validTo}" type="date" dateStyle="full"/>
</logic:iterate>
O que há de errado nesse código
<logic:iterate id="product" scope="request" name="listProduct">
<bean:write name="product" property="name"/>
<fmt:formatDate value="${product.validTo}" type="date" dateStyle="full"/>
</logic:iterate>
aparentemente o código está legal.
posta aí a mensagem de erro que você está recebendo…
outra coisa, eu costumo colocar sempre um logic:present para evitar erros caso a collection não esteja na request ou na session.