Estou com problema para gravar os valores que estão nos campos de ID “finalidade”, “destino” e “observacao”, todos são strings. Associo cada campo com o valor do objeto mas sempre retorna nulo, alguém pode me ajudar ???
Você criou os get e sets do obj ordemCadastro no seu bean do jsf e das propiedades do bean ordemCadastro
? sem sim poste o código completo.
Como faço para o código aparecer aqui ? Devo colocar ele dentro de que marcações ?
Eu criei os get e sets do objeto. mas mesmo assim não funciona. Todos os outros campos funcionam normalmente, só o finalidade, destino e observacao que sempre tem o valor nulo.
Segue o meu bean em anexo.
CadastroOrdemIndividualBean.java (16.1 KB)
E sua classe Ordem? Tem os get e sets dos atributos?
[code]
<h:outputLabel for=“finalidade” value=“Finalidade”/>
<h:inputText class=“form-control” id=“finalidade” value="#{cadastroOrdemIndividualBean.ordemCadastro.finalidade}“
disabled=”#{cadastroOrdemIndividualBean.numeroOrdem == 0}"/>
[/code]
coloca os botões dentro do mesmo form dos campos e testa de novo.
Olá,
Na declaração de ordemCadastro, instancie um novo objeto Ordem, e se você está usando o objeto diretamente no xhtml então deve public e não private:
public Ordem ordemCadastro = new Ordem() ;
Mas se quiser mantê-lo private, então terá que criar um método que retorne um objeto Ordem, por exemplo, public Ordem getOrdem() { return this.ordemCadastro; } e assim no xhtml você usará cadastroOrdemIndividualBean.getOrdem().finalidade, por exemplo.
Olá,
Leia a seguinte informação sobre @PostConstruct: http://stackoverflow.com/questions/15773350/initialization-of-list-in-a-jsf-managed-bean
Muito Obrigado cara, deu certinho agora, era isso mesmo, coloquei tudo dentro de um form só e declarei ordemCadastro como public e funcionou.
Obrigado demais pela ajuda.
Abração.
Olá,
Preciso me corrigir.
Você deve manter o objeto ordemCadastro como private dentro do managed bean cadastroOrdemIndividualBean, e dentro desse último, declarar um getter para ordemCadastro, public ordemCadastro getOrdemCadastro { return this.ordemCadastro; }, e assim você conseguirá acesso aos métodos de ordemCadastro na página CadastroOrdem.xhtml.
Não é recomendado, não é uma boa prática, não é seguro, declarar os atributos de sua classe como public.