Adidicionar remover jsp struts

5 respostas
F

quero fazer assim…

um combo box com cidades… um listbox embaixa do combo e do lado um botao adicionar e remover para o cara ir adicionando e removendo…
como monto isso no form do struts ? alguem tem um exemplo?

5 Respostas

R

Isso tá mais pra JavaScript do que JSP e/ou struts.

Vê se é isso:

Código pra inserir:

/** * Método que adiciona uma nova Option no combobox designado. * * @param campoOrig campo de onde vem a informação. * @param campoDest campo (combobox) que receberá o novo Option. * @param msgErro mensagem para ser exibida caso o campoOrig esteja vazio. * * Possível uso: * onclick="addSimples(form1.prefixe, form1.prefixes, 'O prefixo não pode ser vazio!');" */ function addSimples(campoOrig, campoDest, msgErro) { x = campoOrig.value; len = campoDest.length; existe = contains(campoDest.options, x); if (existe > -1) { alert('Valor já cadastrado.'); } else { if (x == "") { alert(msgErro); } else { campoDest.options[len] = new Option(x, x, true); len++; } } x = null; campoOrig.value = ""; arrangeSimples(campoDest); }

Código pra excluir:

/** * Método que remove um valor do combobox. * * @param combobox do qual seré removido o elemento. * * Possível uso: * onclick="deleteSimples(form1.prefixes);" */ function deleteSimples(lista) { for (i = 0; i < lista.length; i++) { if (lista.options[i].selected == true) { lista.options[i] = null; arrangeSimples(lista); return; } } }

Código no JSP:

<tr> <td>Prefixes:</td> <td> <table> <tr> <td>Prefixo:</td> <td><input name="prefixe" type="text" /></td> <td><input type="button" name="addList" value="Adicionar" onclick="addSimples(form1.prefixe, form1.prefixes, 'O prefixo não pode ser vazio!');" ${disabled} /></td> </tr> <tr> <td colspan="2"> <input type="hidden" name="_<c:out value="${status.expression}"/> value="visible" /> <select name="${status.expression}" multiple="multiple" size="10" style="width: 100%" ${disabled} > <c:forEach items="${status.value}" var="prefix"> <option value="${prefix}" selected="selected">${prefix}</option> </c:forEach> </select> </td> <td><input type="button" name="deleteList" value="Excluir" onclick="deleteSimples(form1.prefixes);" /></td> </tr> </table> </td> </tr>

Daí é só tu adaptares pras tuas necessidades, mas as chamadas dos scripts são essas.

Depois é só tu receberes os valores do campo tal (listbox) no struts como recebes qualquer outro campo, tratar as informações e salvar.

Boa sorte

[]s

F

Era isso mesmo… valeu!!!

F

Era isso mesmo… valeu!!!

F

da erro nas linhas…

existe = contains(campoDest.options, x);

fala que contains nao existe e tb na

arrangeSimples(campoDest);
R

Esqueci de coloca isso também:

/**
	 * Método que verifica se a lista contém o valor especificado.
	 * 
	 * @param lista array utilizado para buscar o valor.
	 * @param valor valor a ser buscado no array.
	 * 
	 * Possível uso:
	 * confirm(contains(form1.parameters.options, 'asdf'));
	 */
	function contains(lista, valor)
	{
		for (i = 0; i < lista.length; i++)
		{
			if (lista[i].value == valor)
			{
				return i;
			}
		}
		return -1;
	}
E o outro é opcional, se quiseres podes apagar, ou adiciona isso aqui:
/**
	 * Método que ordena a lista especificada.
	 * 
	 * @param lista array utilizado para buscar o valor.
	 * 
	 * Possível uso:
	 * onclick="arrangeSimples(form1.parameters.options);"
	 */
	function arrangeSimples(lista)
	{
		tamanhoLista = lista.length;
		
		if (tamanhoLista > 0)
		{
			for (i = 0; i < (tamanhoLista - 1); i++)
			{
				for (j = (i+1); j < tamanhoLista; j++)
				{
					var item1 = lista.options[i];
					var item2 = lista.options[j];
										
					if (item1.text > item2.text)
					{
						var aux = new Option(item1.text, item1.value, true);
						lista.options[i] = new Option(item2.text, item2.value, true);
						lista.options[j] = aux;
					}
				}
			}
		}
	}

[]s

Criado 18 de agosto de 2006
Ultima resposta 24 de ago. de 2006
Respostas 5
Participantes 2