Problema com <c: forEach> ao duplicar <select>

estou fazendo um <c: forEach> que repede um , mas só no primeiro que o select aparece.

Primeiro: Nunca poste a imagem do seu código, copie e cole ele que será bem mais útil (postar imagem de código não faz sentido!).

Segundo: Realmente muito estranho não renderizar, vc reparou se dá algum erro no console? Faça um teste: remova os atributos id dos elementos dentro desse forEach para ver se funciona.

Obrigado pela dica!
Eu resolvi em partes o problema, ele agora aparece a caixa para seleção, mas como vou colocar o valor de cada item é que não pensei ainda.
Arquivo jsp:
<c:forEach items="${dto.foods}" var=“food” varStatus=“srStatus”>


								<div class="form-group col-md-6">
									<div class="col-md-12">
										<label class="control-label">${i18n.label.food.description}</label>
										<input  type="text" name="dto.foods[${srStatus.index}].description" id="foodDescription" class="form-control" value="${food.description}">
									</div>
								</div>	
	
								<div class="form-group col-md-3">
									<div class="col-md-12">
										<label class="control-label">${i18n.label.food.hour}</label>
										<input  type="text" name="dto.foods[${srStatus.index}].hour" id="foodHour" class="form-control" value="${food.hour}">
									</div>
								</div>				
								
								<div class="form-group col-md-3">
									<div class="col-md-12">
										<label class="control-label" for="foodResult">${i18n.label.food.result}</label>
										<select  id="foodResult" class="chosen-select"  name="dto.foods[${srStatus.index}].result" data-placeholder="${i18n.select.food.result}" data-selected="${food.result}">
											<option value="EVERYTHING">${i18n.label.food.everyThing}</option>
											<option value="ALMOSTEVERYTHING">${i18n.label.food.almostEveryThing}</option>
											<option value="HALF">${i18n.label.food.half}</option>
											<option value="ALMOSTNOTHING">${i18n.label.food.almostNoThing}</option>
											<option value="REFUSED">${i18n.label.food.refused}</option>
										</select>
									</div>
								</div>						
							</div>
						</c:forEach>

JS:
var foodResults = $(’.foodResult’).chosen({allow_single_deselect:true});

// 	foodResult.val(foodResult.data("selected")).trigger('chosen:updated');

problema era que estava chamando por id e quebrava o conceito de id ser único ai usei o class. Mas agora como vou passa o valor para cada item não sei.

Acho que vou dar como solucionado a questão principal e mando outro tópico caso não consiga resolver.

1 curtida

Não sei como vc está submetendo esse form para salvar, mas se vc submete vários inputs com o mesmo name, vc consegue recuperar os valores de um mesmo name como um array no backend.