Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

entrada de dados em jsp

Bom dia, gostaria de digitar valores numa lista dinamicamente em jsp tem como ? exemplo vou digitar dados de um carro: placa, cor, chassi e acessorios ? alto falante a roda de liga; ou seja uma carro tem 0 ou muitos acessorios. Como faco isso em jsp ja tentei vaias coisa ficou horrivel. no swing colocaria uma grade para digitar mas no jsp ?

8 respostas

Olá Marcos! Tudo bom?

Se entendi bem, você tem uma modelagem semelhante à classe Carro a seguir, certo?

class Carro {
  String placa;
  String cor;
  String chassi;
  List<String> acessorios;
}

Para imprimir cada um dos atributos, incluindo diversos acessórios, basta utilizar o foreach, que itera em uma lista ou array de items.

${carro.placa}
${carro.cor}
${carro.chassi}
<c:forEach items = "${carro.acessorios}" var = "acessorio">
  ${acessorio}
</c:forEach>

É isso que você quer? Se não, me de um pouco mais de detalhes sobre o seu caso!

Um abraço e bons estudos!

Acho que entendi sua pergunta agora. Você quer incluir diversos atributos dinamicamente em um modelo através da jsp, certo?

Eu diria que o jeito mais fácil seria utilizar Javascript pra interagir com o HTML e alterar a lista de acessórios. Os paradigmas de aplicações desktop e web são bem diferentes.

Me confirme se é isso mesmo e se sim eu elaboro uma resposta mais completa pra resolver o problema!

Aproveite pra incluir mais detalhes: você já tem um modelo? Como está a estrutura no backend? A lista de acessórios é realmente completamente dinâmica ou ela é fixa e você quer escolher dentre uma gama de acessórios pré estabelecidos?

Obrigado, Marco. por acaso esta seria melhor solução

<codigo>
                       <select name="acessorio" id="acessorio" multiple >
                                <c:forEach items="${acessorios}" var="acessorio">
                                    <option value='${acessorio.id}'>${acessorio.descricao}</option>
                                </c:forEach>
                        </select> 
</codigo>

Se sua lista no modelo Carro for de um objeto que tiver este atributo, certamente! =)

Exemplo sobre a resposta anterior

class Acessorio {
    public String nome;
    public String descricao;
}

class Carro {
    public List<Acessorio> acessorios;
}


<c:forEach items = "${carro.acessorios}" var = "acessorio">
    ${acessorio.descricao}
</c:forEach>

Marcos, pensei que tivesse algo errado com sua resposta e resolvi conferir se você havia esquecido as crases que envolvem o código e descobri que metade do seu post havia sido escondido por isso. Lembre-se sempre que for incluir código de utilizar o botão <> inserir código!

Bom, agora que eu pude ver seu código completo, digo que sim, está ótimo! =)

mais uma vez Obrigado. Porem no meu servlet esta dizendo que esta vazia a variavel que recebe o que estiver selecionado no combo.

String[] escolhidos = request.getParameterValues("acessorios");

Marcos, você deu o nome de acessorio, no singular, para essa lista. Confira no seu <select>