[Struts] Array de informações em ActionForm

2 respostas
rodrigoallemand

Quem diria, hein... ajuda com Struts...

Problema: ao criarmos um pedido, eu preciso listar os tipos de produto colocando mao lado de cada um a respectiva quantidade.
Então, na tela, eu teria toda a informação do pedido e uma lista de tipos de produto, com um campo de quantidade pra cada tipo, sacou...
Seguem as classes...

O Form
public class VendaPassagemClienteExternoForm extends BaseForm {	
	private String tipoVenda = null;
	//Outros dados
	private VendaPassagemFormDetail[] detalhePassagem = null;

	//Getters e Setters dos outros atributos
	public TipoPassagemFormDetail[] getDetalhePassagem() {
		return detalhePassagem;
	}
	
	public TipoPassagemFormDetail getDetalhePassagem(int i) {
		return detalhePassagem[i];
	}

	public void setDetalhePassagem(TipoPassagemFormDetail[] detalhePassagem) {
		this.detalhePassagem = detalhePassagem;
	}
}
O FormDetail (um pojo que ajuda ao Form)
public class VendaPassagemFormDetail {	
	private String id = null;
	private String qtd = null;

	//Getters e Setters
}
JSP
<c:forEach var="tipo" items="${tiposPassagem}">
<tr>
	<td class="labelField">
		<c:out value="${tipo.descricao}" />
	</td>
	<td width="50%">
		<html:hidden indexed="true" name="tipo" property="id" />
		<html:text indexed="true" name="tipo" property="qtd" value="0" styleClass="inputText" size="4" />
	</td>
</tr>
</c:forEach>
O HTML gerado
<tr>
	<td class="labelField" width="50%">Aduto</td>
	<td width="50%">
		<input type="hidden" name="detalhePassagem[0].id" value="1">
		<input type="text" name="detalhePassagem[0].qtd" size="4" value="0" class="inputText">
	</td>
</tr>
						
<tr>
	<td class="labelField" width="50%">Criança de Colo</td>
	<td width="50%">
		<input type="hidden" name="detalhePassagem[1].id" value="7">
		<input type="text" name="detalhePassagem[1].qtd" size="4" value="0" class="inputText">
	</td>
</tr>
						
<tr>
	<td class="labelField" width="50%">Deficiente Físico</td>
	<td width="50%">
		<input type="hidden" name="detalhePassagem[2].id" value="4">
		<input type="text" name="detalhePassagem[2].qtd" size="4" value="0" class="inputText">
	</td>
</tr>
						
<tr>
	<td class="labelField" width="50%">Estudante</td>
	<td width="50%">
		<input type="hidden" name="detalhePassagem[3].id" value="2">
		<input type="text" name="detalhePassagem[3].qtd" size="4" value="0" class="inputText">
	</td>
</tr>

Parece estar tudo certo... O problema é que não faz binding no Form, mas nem com reza braba!!!!
Alguem consegue "ver" algum problema?!?

2 Respostas

ercardoso

Como está seu get?

getDetalhePassagem(int index) ?

rodrigoallemand

Editei o código acima…

Criado 13 de março de 2008
Ultima resposta 13 de mar. de 2008
Respostas 2
Participantes 2