Como já declaramos o componente PanelGrid no construtor do bean e como já criamos o código na view, vamos para próximo passo.
vamos fazer um metodo chamado criarPanel(); , void mesmo como abaixo:
public void criarPanel(){ }
Nele vamos colocar dentro o InputText e OutputLabel. Se quiser criar mais de um, então use a estrutura de repetição FOR, por exemplo, quero criar 6 componentes, então usaremos da seguinte forma:
for(int i= 0; i < 6; i++){
//Código, que vai ser explicado abaixo.
}
Dentro deste for iremos atribuir valor aos componentes para isso devemos pegar o contexto, para isso existe o FacesContext, do pacote javax.faces.context.FacesContext, com o método getCurrentInstance() como abaixo:
FacesContext.getCurrentInstance().getApplication().createComponent(OutputLabel.COMPONENT_TYPE);
No código acima pegamos o contexto, sua aplicação com isso criamos o componente e dentro do metodo createComponent declaramos qual o componente que queremos, neste caso o OutputLabel, só que todo esse código não é do tipo OutputLabel e por isso temos que fazer um cast.
opl = (OutputLabel) FacesContext.getCurrentInstance().getApplication().createComponent(OutputLabel.COMPONENT_TYPE); in = (InputText) FacesContext.getCurrentInstance().getApplication().createComponent(InputText.COMPONENT_TYPE);
Depois temos que pegar separado, primeiro o contexto atual, depois o contexto da expression Language o ELContext, depois a aplicação para poder decalrar uma fabrica de expressão, como podemos ver no código abaixo:
context = FacesContext.getCurrentInstance(); elContext = context.getELContext(); Application app = context.getApplication(); ExpressionFactory expressionFactory = app.getExpressionFactory();Com isso já estamos quase acabando, para o post não ficar tão grande, vamos parar por aqui e continuar na próxima semana.
Qualquer dúvida pode fazer um comentário que eu terei o maior prazer de responder, até mais!
Nenhum comentário:
Postar um comentário