Struts <html:select>

Utilizando HTML e JavaScript, criei 2 “combox” e alguns botoes para manipular as opções. Desenhando grosseiramente ficou mais ou menos assim:

opcao1|  subir  |opcao5
opcao2|   >   |opcao6
opcao3|   <   |
opcao4| descer |

O primeiro combo recebe uma lista de opções e através dos botões no meio, deve enviar as opções para o segundo combo. No segundo combo, tenho que permitir a ordenação das opções através dos botoes subir e descer.
Os dois combos permitem seleção multipla.

O HTML e JavaScript já estão funcionando perfeitamente, manipulando corretamente as opções.

Agora preciso adaptar isso para carregar o primeiro combo a partir do struts e depois, recuperar o conteúdo do segundo combo, na ordem que o usuário deixou.

Já pesquisei todas as mensagens relativas a struts, select, option e options no forum e não encontrei algo que me auxiliasse.
Também já revirei a net com o google e não encontrei nada semelhante.

Alguém pode me dar algumas dicas?

[]'s

Robert

E ae rmlang…

Em que momento tu queres que aconteça tal ação?
Exemplo: após submetida a página ela retorna com os combos já montados? Seria isso?

Obs: A maneira como tu fez, no menu ver está correta. Qdo tu for submeter a sua página, acredito que os dados do segundo “combo” deverão ser armazenados em um BD. Bom até aí tudo bem, qdo entrares na página novamente, a mesma deve vir com os combos montados da mesma forma que tu os montou. Isso?

[quote=“Lucashgt”]E ae rmlang…

Em que momento tu queres que aconteça tal ação?
Exemplo: após submetida a página ela retorna com os combos já montados? Seria isso?

Obs: A maneira como tu fez, no menu ver está correta. Qdo tu for submeter a sua página, acredito que os dados do segundo “combo” deverão ser armazenados em um BD. Bom até aí tudo bem, qdo entrares na página novamente, a mesma deve vir com os combos montados da mesma forma que tu os montou. Isso?[/quote]

Blz, Lucashgt!?

Explicando um pouco mais, esses combos servirão para que o usuário escolha uma lista de campos de uma tabela para gerar uma outra visualização ou relatório. Certamente haverá uma situação que permitirá alterar o que foi selecionado.

Como eu ainda estou aprendendo a utilizar o struts, nem mesmo sei se dá pra capturar os dados do segundo combo, na ordem que ficou. Caso não funcione, pensei em criar um campo escondido no formulario que receberia todo o conteudo do combo por javascript, mas eu ainda vou precisar alimentar o primeiro combo.

Será que tem alguma forma mais simples de fazer isso?

Cara, é possível de se fazer sim. No teu FormBean, você deve ter um atributo que represente este segundo “combo”. A existência desse atributo no teu FormBean, permite recuperar o mesmo na tua action, podendo trabalhar normalmente como tu vem trabalhando.

O fluxo continua normal, basta tu ter esse combo como sendo um atributo do teu FormBean. :wink:

[quote=“Lucashgt”]Cara, é possível de se fazer sim. No teu FormBean, você deve ter um atributo que represente este segundo “combo”. A existência desse atributo no teu FormBean, permite recuperar o mesmo na tua action, podendo trabalhar normalmente como tu vem trabalhando.

O fluxo continua normal, basta tu ter esse combo como sendo um atributo do teu FormBean. :wink:[/quote]

Lucas, eu ainda estou um pouco perdido :oops: e não entendi como deve ser feita essa declaração no form, vc teria como postar um exemplo simples? :shock:

Cara, agradeço muito a sua atenção e espero poder retribuir!!! :smiley:

Consegui fazer uma parte :? do que eu queria, ficou assim:

html:

<html:select property="origem" size="10" multiple="true" ondblclick="OptionCutAndPaste(forms[0].origem,forms[0].destino)"> <html:options property="origens"/> </html:select> ... <html:select property="destino" size="10" multiple="true" ondblclick="OptionCutAndPaste(forms[0].destino,forms[0].origem)"> <html:options property="destinos"/> </html:select>

ActionForm:

[code]public final class ReportForm extends ActionForm {
private String origem;
public String getOrigem() {return origem;}
public void setOrigem(String origem) {this.origem = origem;}

private String[] origens = {
		"- Selecione -",
		"Primeiro",
		"Segundo",
		"Terceiro",
		"Quarto",
		"Quinto",
		"Sexto",
		"Sétimo",
		"Oitavo",
		"Nono",
		"Décimo",
		"Décimo primeiro",
		"Décimo segundo"
};	
public String[] getOrigens() {return origens;}
public void setOrigens(String[] origens) {this.origens = origens;}

private String destino;
public String getDestino() {return destino;}
public void setDestino(String destino) {this.destino = destino;}

private String[] destinos = {};
public String[] getDestinos() {return destinos;}
public void setDestinos(String[] destinos) {this.destinos = destinos;}

...	

}[/code]

O que ocorre agora é que depois de enviar o formulario, a string destino contem a primeira opção marcada no “combo” destino e a string destinos fica em branco.

Preciso pegar o retorno da string destinos que deve conter todas as opções do combo na ordem que estiverem. :shock:

Sugestões?? :?: