Jsf

2 respostas
D

Ola tudo bem? Estou iniciando em jsf,fiz um popup que contem uma lista de itens, quero que ao clicar no item do popup o form pai seja populado,
como posso fzer isso? alguem tem um exemplo?procurei muito e nao encontrei, só usando muito java script, gostaria de saber como fasso utiliando jsf.

2 Respostas

mateusprado

Ola davidcs !
Existe um objeto do JSF que se chama ActionEvent, atraves dele voce consegue pegar/guardar a referencia de um elemento value por exemplo.
Ele funciona parecido com o getElementById(""); do JavaScript.

Por exemplo:

public void selecionaItem(ActionEvent event) {

			UIComponent link = event.getComponent();
                        //getElementById(); no JSF
			UIParameter param = (UIParameter) link.findComponent("idDoComponente");
			BigDecimal ID_ITEM = (BigDecimal) param.getValue();

			// logica para popular um objeto aqui

	}

Agora é com você !
A logica de popular um objeto esta facil:

  • Ja tenho a referencia para um SELECT, ou seja, consigo criar um método que retorne um obejto ITEM passando o ID como referencia. Existem varias formas, DaoGeneric, faclita muito ou um simples simples PreparedStatement.

Existem “n” formas de se fazer isso, por exemplo passando parametros, como a4j:actionparam. E outras e outras!

[ ]s,

D

Obrigado pela atenção Mateus, na verdade acho que não consegui esplicar direito meu problema, vamos lá , tenho um form de vendas com diversos campos e no campo produto tenho um campo text onde inseri do lado um icone comand Link que abre uma lista de produtos, guando seleciono um produto da lista, quero que seja fechado o popup e que o campo no form de venda seja preenchido, nao uso combo box pois são muitos produtos.

[b]form vendas.jsp[/b]

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Incluir Produtos</title>
    </head>
    <body >
        <f:view>
        <h:form>
        <h:messages>
            <h:outputLabel value="Incluir Vendas"/><h1/>
            Codigo:<h:inputText value="#{NewJSFManagedBean.selectedVenda.codigo}"/> <br/>
            Endereco:<h:inputText value="#{NewJSFManagedBean.selectedVenda.endereco}"/><br/>
            Produto:<h:inputText value="#{NewJSFManagedBean.selectedVenda.produto}">
            </h:inputText>
            <h:commandLink
                target="produto"
                value="<...>">
            </h:commandLink>
            <br/>
            Vendedor:<h:selectOneMenu value="#{NewJSFManagedBean.selectedVenda.vendedor}">
                <f:selectItems  value="#{NewJSFManagedBean.logins}"/>
                <f:converter converterId="loginConverter"/>
            </h:selectOneMenu><br/>
            <h:commandButton value="Cancelar" action= "#{NewJSFManagedBean.finishAddVenda}"/>
            <h:commandButton value="Adicionar" action="#{NewJSFManagedBean.finishAddVenda}"/>
        </h:messages>
        </h:form>
        </f:view>
    </body>
</html>

Popup produto.jsp

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Produtos</title>
    </head>
    <body >
        <f:view>
        <h:form>
        <h:dataTable border="1" value="#{Produtofaces.produtos}" var="item">
            <h:column>
                <f:facet name="header">
                    <h:outputText  value="Codigo"/>
                </f:facet>
                <h:outputText  value="#{item.codigo}"/>
            </h:column>
            
            <h:column>
                <f:facet name="header">
                    <h:outputText  value="Nome"/>
                </f:facet>
                <h:outputText  value="#{item.nome}"/>
            </h:column>

                </h:dataTable>
        </h:form>
        </f:view>
    </body>
</html>

Como poderia setar o valor do produto do popup no form de vendas ?com o evento que vc passou posso pegar o valor do produto clicado, porem como
setar o NewJSFManegedBean.selectedVenda.produto.

Produto:<h:inputText value="#{NewJSFManagedBean.selectedVenda.produto}">

gostaria de fazer como o Calendario do tomahowk onde abre o popup é selecionado a data e o campo é prenchido.
Desde ja agradeço.

Criado 2 de abril de 2009
Ultima resposta 3 de abr. de 2009
Respostas 2
Participantes 2