ModelandView- JSTL dos infernos

Poderia me dar uma ajuda, tenho um Bean produto e esse bean tem uma list preço

public class Produto {

private List<Preco> preco;

..}
public class Preco {
	
	private BigDecimal 	valor; //HERDA DE BIGDECIMAL
	private parcelamento parcelas; 
}

Meu controller está assim…

@RequestMapping("/produtos/form") //requisição recebida de /produtos/form retorne o mesmo
	public ModelAndView form(){
		
		
		
		 ModelAndView modelandview = new ModelAndView("/produtos/form"); //recebe view name
		 modelandview.addObject("parcelamento", parcelamento.values());
		 modelandview.addObject("preco", Preco.class); //manda do view para o controller, coloco na variavel tipo do jslt o enum
		
		 
		 //O "parcelamento"é a chave do enum
		 // o tipo preço que está dentro dentro do for da JSTL
		//values é um array do enum.
		System.out.println("Entrando no controller form");
		return modelandview;

A pergunta é como escrevo o JSTL?Eu fiz assim…na verdade fiz de varias formas mas não consigo inserir as informações na minha tabela de preços…

<c:forEach items="${object['class'].declaredFields}" var="p" varStatus="i" >
       <div>
           
                <input type="text" name="[${i.valor}].valor" />
                <input type="text" name="[${i.parcelas}].parcelas" />
            
        </div>    
       </c:forEach>

Vamos por partes. É muito fácil criticar uma tecnologia quando não se conhece ela a fundo e não se compreende seu ciclo de vida. Quando se conhece, quando se familiariza, a tecnologia fica fácil (menos CSS, CSS é difícil demais).
Com JSTL, que é simples e intuitivo, você referencia um objeto, presente em um dos escopos existentes, assim: ${objetoNoEscopo}.
Partindo daí, se você tem um atributo neste objeto que quer acessar e apresentar, faria assim: ${objetoNoEscopo.atributo}. Só para esclarecer, o JSTL acessa o atributo do objeto pelo seu respectivo getter, assim sendo, o objeto objetoNoEscopo precisa ter um getter getAtributo() que retorne o atributo esperado.
Quando o atributo em questão é uma lista de outros objetos, pode-se iterar sobre ele, da seguinte forma:
<c:forEach items="${objetoNoEscopo.atributoVetor}" var="item">
E, para acessar o atributo val de cada item:
${item.val}
No teu caso, pelo que vi, você está utilizando Spring MVC, certo?
Se sim, dá uma olhada aqui antes de prosseguir.
Além disso, você não coloca uma lista (ou vetor) de objetos para acessá-los na jsp. É isso que te impede de acessar as variáveis no c:forEach.