Campos String com JSF não funcionam[RESOLVIDO]

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 ?

http://blog.da2k.com.br/2015/02/08/aprenda-markdown/

function sayHello() {
return ‘hi!’;
}

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?

A principio sim, segue me anexo.
Ordem.java (7.1 KB)

E a pagina completa está assim:

CadastroOrdem.xhtml (22.6 KB)

[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.