Galera, existe alguma forma solução interessante (mantendo também a tecnologia do BIND) sem utilizar o input hidden? Acho que fica muito vulnerável com o hidden, pois o usuário pode editar o valor manipulando os elementos da página.
<form action="/casadocodigo/produtos" method="post">
<div>
<label>Título</label>
<input type="text" name="titulo" />
</div>
<div>
<label>Descrição</label>
<textarea rows="10" cols="20" name="descricao"></textarea>
</div>
<div>
<label>Páginas</label>
<input type="text" name="paginas" />
</div>
<c:forEach items="${tipos}" var="tipoPreco" varStatus="status">
<div>
<label>${tipoPreco}</label>
<input type="text" name="precos[${status.index}].valor" />
<input type="hidden" name="precos[${status.index}].tipo" value="${tipoPreco}" />
</div>
</c:forEach>
<button type="submit">Cadastrar</button>
</form>