Boa tarde pessoal!
Eu não estou conseguindo persistir campos do tipo "select", que possuem valores fixos (Sim/Não) como por exemplo:
<label>Promoção:</label>
<select name="produto.promocao" id="promocao" class="form-control" data-select="sl" data-url="sl">
<option value="S">Sim</option>
<option value="N">Não</option>
</select>
**Eu consegui fazer a persistência de campos do tipo "select", que carregam informações vindas de tabelas, lendo a documentação do VRaptor, adicionei os métodos que carregam a informação na chamada do form, e tanto para cadastrar quanto para editar um registro a persistência ficou OK!!!
No meu ProdutoDao, eu tenho o método atualiza(), que por sua vez chama o método buscaPorId(), para carregar o registro correto:
public Produto atualiza(Integer id, Result result) {
Produto produto = this.buscaPorId(id);
return produto;
}
public Produto buscaPorId(Integer id) {
try {
TypedQuery<Produto> query = manager.createQuery("Select p from Produto p Where p.id = :id", Produto.class);
query.setParameter("id", id);
return query.getSingleResult();
} catch (Exception e) {
return null;
}
}
No meu form.jsp:
<label>Produto em promoção:</label>
<select name="produto.promocao" id="promocao" class="form-control" data- select="sl" data-url="sl">
<option value="S">Sim</option>
<option value="N">Não</option>
</select>
Porém se eu tentar atualizar um registro da tabela Produto, que tiver promocao como "N", ao selecionar esse registro o form.jsp, carrega "S" no registro, por ser o primeiro item da lista...
Resumindo Não está persistindo a informação do atributo, para esse tipo de campo "select"...
OBSERVAÇÃO : Me pediram para evitar ao MÁXIMO o uso de JAVA SCRIPT no projeto.
Obrigado!