Criação dinâmica de componente de texto em JSF  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
SfamRcks
What is classpath?

Membro desde: 02/05/2006 16:53:20
Mensagens: 7
Offline

Galera,
Meu problema é o seguinte, quero criar um campo de texto (InputText) ou area de texto (InputArea) dinamicamente, por intermédio de um botão.

Quero fazer isso pois cada usuário pode criar um (ou mais) formulário de especificação, e cada formulário pode ter um número diferente de especificações. Isso quer dizer que eu não sei quantos campos eu preciso de antemão. Por isso quero fazer um botão que adicione um campo de texto toda vez que for clicado.

Sou iniciante em JSF, estou usando Myfaces e Tomahawk no Eclipse Europa para J2EE developers no Linux.
SfamRcks
What is classpath?

Membro desde: 02/05/2006 16:53:20
Mensagens: 7
Offline

Galera, consegui descobrir como faz para criar componentes dinamicamente ou programaticamente, o colega ferryman me ajudou bastante e depois eu encontrei um exemplo na net.

Basicamente vc tem que pegar uma instancia da aplicação do FacesContext (FacesContext.getCurrentInstance().getApplication) pois só a partir do application será capaz de usar o método createComponent (Valeu pela dica Ferryman) .


Exemplo:
fonte : http://mail-archives.apache.org/mod_mbox/myfaces-users/200604.mbox/%3C443A52A3.70403@wavegroup.it%3E

Esta é a tag que sua pagina tem que conter, precisa de um binding para chamar outro componente



Este é o seu bean java


A saída gerada pelo código java é similar a essa saída



Só lembrando que para criar os componentes e para que estes sejam vistos precisamos de um panelGrid ou um panelGroup.
bebad
JavaEvangelist
[Avatar]

Membro desde: 27/07/2006 19:56:35
Mensagens: 303
Offline



Puta velho,

<%@ taglib uri="http://myfaces.apache.org/trinidad" prefix="tr"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>

to tentando usar esse componente:
rich:datascroller

só que meu sitema usa o trinidad e o tipo do form é tr:form

dai olha só que fita:

parece que o richfaces tem que achar o formulario da pagina, e ai ele usa esse metodo:

UIForm form= RendererUtils.getInstance().getNestingForm(context, component);

que chama esse outro:

UIComponent parent = component.getParent();
while (parent != null && !(parent instanceof UIForm)) {
parent = parent.getParent();
}


bom acontece que como vcs viram meu form é do tipo: tr:form e nao h:form

logo !(parent instanceof UIForm) allways will evaluate false;

e vai ser true, vai entrar no while e vai procurar outro parent, sou seja nunca vou conseguir fazer o fdp entender que meu form nao é h:form...


cai nesse toopico pq eu vi essa linha:

text.setRendererType("javax.faces.Text");

bom,

sei la...vou tentar aqui setar um outro form hardcoded no meu componente e ver oque acontece...mas acho que isso nao vai funcionar..


se alguem ai tiver uma luz no fim do tunel, e souber bastante de trinidad...myfaces, richfaces e puder dar uma luz eu vou ser eternamente grato..


valeu.







full stacktrace:


This message was edited 1 time. Last update was at 28/01/2009 09:49:18


Admin.. PATCH your box now, or DIE!!!

Oracle Certified Associate, Java SE 5/SE 6
Oracle Certified Professional, Java SE 6 Programmer
Oracle Certified Professional, Java ME 1 Mobile Application Developer
Oracle Certified Expert, Java EE6 Web Services Developer
Oracle Certified Master, Java EE 5 Enterprise Architect
Oracle Certified Professional, Java EE 5 Web Component Developer
Oracle Certified Professional, Java EE 5 Business Component Developer

representing the old school defacers brazil:
red_eye
ATH
ir4dex
hax0rs lab
IoN
r00t_system
kernel_panic

bebad was here.
SfamRcks
What is classpath?

Membro desde: 02/05/2006 16:53:20
Mensagens: 7
Offline

Olha, estou um pouco afastado de JSF no momento, mas vamos tentar...

Pelo que eu entendi a sua comparação !(parent instanceof UIForm) nunca vai dar certo por um componente ser trinidad e o outro não ser trinidad (não olhei pra saber de qual taglib vem seu "common")...

Se esse for o caso, tente:



Dê uma modificada a seu gosto....

a parte importante pra vc é essa:




retirado de http://struts.apache.org/1.x/struts-faces/xref/org/apache/struts/faces/renderer/CommandLinkRenderer.html
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team