Basicamente ele seleciona um estado e conforme o id selecionado ele carrega as cidades.
Porém agora me surgiu um problema, uso o mesmo formulário para inserir e editar, e ao editar ele não carrega automaticamente as informações do combo.
Nesse caso, você vai precisar carregar o estado selecionado e todas as cidades desse estado e selecionar a cidade certa…
Ou seja, na action, você vai precisar saber que é edição e carregar a primeira lista de cidades…
T
tiago.javaman
Opa Rafael, seria algo como o evento “onLoad” no “<select>” ??
Rafael_Guerreiro
Não…
Quando vc executa a action, você tem o result para poder incluir variáveis e coisas assim. Use o result para incluir a lista de cidades do estado selecionado (você sabe qual é, pela instancia do objeto que vai ser alterado)…
Ai, no JSP, você faz um c:forEach e popula o combo de cidades… selecionando a cidade que está na instancia do objeto que vai ser alterado…
T
tiago.javaman
Rafael, obrigado pela ajuda.
Consegui como descreveu, o mais importante era o “selected” que estava esquecendo.
Barbaridade, resolvi um e encontrei outro problema,
Agora ao salvar o cadastro e não seleciona nenhuma cidade (não obrigatória) dispara essa exception.
Caused by: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing: br.com.vraptor.model.Cliente.cidade -> br.com.vraptor.model.Cidade
at org.hibernate.engine.spi.CascadingAction$8.noCascade(CascadingAction.java:380)
at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:177)
Selecionando a cidade funciona perfeitamente. Alguma idéia?