JSF: montar componentes dinamicamente [RESOLVIDO]

4 respostas
glauber_rochab

Olá a todos,

em Servlet + Jsp eu conseguia fazer algo do tipo:

val.append("<hr>"); val.append("<form id='formEscolheDestinatarios' name='form1' method='post' action=''>"); val.append("<input type='checkbox' value='Todos'>Todos</input>"); val.append("<br>"); val.append("<input type='checkbox' value='"); val.append(this.getEmail()); val.append("'>"); val.append(this.getEmail()); val.append("</input>"); val.append("</form>");

Agora em jsf, como devo proceder? Tentei fazer assim:

val.append("<h:form id=\"frmEmailsMostrados\">"); val.append("<h:selectBooleanCheckbox value=\"0\">Todos</h:selectBooleanCheckbox><br>"); val.append("<h:selectBooleanCheckbox value=\"1\">"); val.append(this.getEmail()); val.append("</h:selectBooleanCheckbox><br>"); val.append("</h:inputText value=\"#{x}\"/>"); val.append("</h:form>");

E não deu certo.
Olhando alguns tópicos parecidos, vi que o urubatan tinha sugerido utilizar o UIViewRoot, mas eu fiquei mais confuso ainda…

Alguém poderia dar uma luz?

Obrigado

4 Respostas

glauber_rochab

Help!!!
Alguem!!!

kissdemon

Não entendi…qual a necessidade dessas tags JSF estarem dentro de um bloco em uma Servlet??
JSF é para estar no JSP…nao entendi realmente!!

[]´s

Carlos

kleins

Mas em JSF pra exibir um componente dinamicamente não utiliza-se a tag RENDERED ?

Acho que oque vc quer não dá pra fazer.

[]'s

Rodrigo

glauber_rochab

Senhores,

consegui resolver da seguinte forma:

<c:forEach var="valor" items="${sessionScope.clienteTree.todosEmailsFormatados}">
     <c:out value="${valor}"></c:out>
     <c:set var="variavel" scope="session">${valor}</c:set>
     <h:commandButton value="Add" actionListener="#{clienteTree.emailSelect}">
           <f:param id="email_select" name="email_select" value="#{sessionScope.variavel}" />
     </h:commandButton>
     <br>
</c:forEach>

e no bean ficou assim:

public void emailSelect(ActionEvent event){
        
        UIParameter parameter = (UIParameter) event.getComponent().findComponent("email_select");
        String emailSelec =  parameter.getValue().toString();
        todosEmailsASeremEnviados.add(emailSelec);

    }

Flw

Criado 27 de julho de 2007
Ultima resposta 2 de ago. de 2007
Respostas 4
Participantes 3