Estou começando a trabalhar com primefaces e estou com algumas dúvidas…
Estou usando o componente “http://www.primefaces.org/showcase/ui/schedule.jsf”, porém, tenho dúvidas de como implementa-lo.
No site do Primefaces há código para colocar no arquivo .xhml e um código java.
Minha dúvida é se eu tenho que colocar esse código Java na minha aplicação ou esse código é interno do componente? Se for interno, como integrar o componente com as minhas classes de negócio? Eu criei uma classe Agendamentos com todos os atributos desse calendário e queria que ela recebesse os dados do formulário e gravasse no banco. Esse meu raciocínio está correto?
Vinny, o código java não é interno do componente. Esse código deve ser declarado no managed bean (controller). Os valores preenchidos na tela são automaticamente preenchidos no managed bean, através dos métodos get/set.
Se você criou uma classe com os atributos do calendário, essa classe pode ser seu managed bean.
Exemplo:
No calendário tem um campo dataInicial. No seu managed bean, que receberá as requisições dessa página, você deve ter um campo Date com os métodos get/set.
@ManagedBean
public class AgendamentoBean {
private Agendamento agendamento;
public void cadastrar(){
DAO<Agendamento> dao = new DAO<Agendamento>(Agendamento.class);
dao.adiciona(this.agendamento);
}
public void setAgendamento(Agendamento agendamento) {
this.agendamento = agendamento;
}
public Agendamento getAgendamento() {
return agendamento;
}
}
… e tenho uma classe Agendamento.
@Entity
public class Agendamento {
@Id @GeneratedValue
private Long id;
private String descricao;
private Date dataInicio;
private Date dataFim;
private Boolean diaInteiro;
/*
* Getters and Setters
*/
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public Date getDataInicio() {
return dataInicio;
}
public void setDataInicio(Date dataInicio) {
this.dataInicio = dataInicio;
}
public Date getDataFim() {
return dataFim;
}
public void setDataFim(Date dataFim) {
this.dataFim = dataFim;
}
public Boolean getDiaInteiro() {
return diaInteiro;
}
public void setDiaInteiro(Boolean diaInteiro) {
this.diaInteiro = diaInteiro;
}
public void setId(Long id) {
this.id = id;
}
public Long getId() {
return id;
}
}
O Raciocinio está correto? Na propriedade descricao do componente, eu coloquei #{agendamentoBean.agendamento.descricao}, mas n funcionou! Estou fazendo algo errado?