Tenho um dialog. Chamo ele nas view´s usando o ui:include. Esta dialog tem um update no commandButton para atualizar uma componente da tela que acionou o dialog.
O problema começa a ocorrer quando preciso chamar este dialog de outro lugar. Como ele tem um update pra um componente específico, se chamo de outra tela que não tem este componente dá erro, impedindo que eu reutilize este dialog.
Na boa? Vale mais a pena você construir um dialog por utilização.
RIA com JSF/Primefaces tem uns bugs bizarros quando a gente começa a reutilizar certas coisas… =/
M
maranata
jakefrog:
Na boa? Vale mais a pena você construir um dialog por utilização.
RIA com JSF/Primefaces tem uns bugs bizarros quando a gente começa a reutilizar certas coisas… =/
Pois é… foi o que pensei… agora fico com a consciência traquila, rsrsrsrsrs.
R
RicardoYukito
voce esta querendo trabalhar com ui:composite
seque exemplo de um dialogo de exclusao de que uso generico na minha aplicacao
<ui:compositionxmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"xmlns:ui="http://java.sun.com/jsf/facelets"xmlns:p="http://primefaces.org/ui"xmlns:composite="http://java.sun.com/jsf/composite"><!-- INTERFACE --><composite:interface><composite:attributename="actionListener"method-signature="void actionListener(javax.faces.event.ActionEvent)"/><composite:attributename="update"/><composite:attributename="onclick"></composite:attribute><composite:attributename="dialogVar"></composite:attribute></composite:interface><composite:implementation><p:confirmDialogid="excluirDlg"message="Deseja Realmente Efetuar esta Operacao ?"header="Processo de Exclusao"severity="alert"widgetVar="#{cc.attrs.dialogVar}"style="z-index:999 !important;"><p:commandButtonimmediate="true"value="Sim"update="#{cc.attrs.update}"oncomplete="#{cc.attrs.dialogVar}.hide();#{cc.attrs.onclick}"actionListener="#{cc.attrs.actionListener}"/><p:commandButtonvalue="Nao"onclick="confirmation.hide();#{cc.attrs.onclick}"/></p:confirmDialog></composite:implementation></ui:composition>
tudo que esta na interface voce pode passar como parametro e acessa o valor pelo name atraves desse “cc.attrs”. que é padrao do jsf.
voce tem que seguir alguma regras de arquitetura como por exemplo.
voce tem(pelo menos acho que é obrigatorio) criar seus componentes dentro de uma pasta chamado “resources” … /WebContent/resources/qualquerEstrutura daqui pra frente
digamos que voce crie /WebContent/resources/dialog basta na pagina ou até mesmo em outro compoenente que voce queira utilizar esse dialog importar o namespace
Mas concordo plenamente com jakefrog, jsf + primefaces + componentes = leve dor de cabeça as vezes;
G
guirald
Boa tarde, Rodrigo, como vai?
Após utilizar o código que você disponibilizou neste fórum: http://www.guj.com.br/java/280603-primefaces---reaproveitamento-dialogs, deparei-me com a seguinte mensagem de erro ao visualizar a página contendo a utilização deste componente: java.lang.ClassCastException: java.lang.String cannot be cast to javax.el.ValueExpression
Você também passou pelo mesmo problema anteriormente?
Fico no aguardo.
Obrigado!
Luís
R
RicardoYukito
tem string no lugar de el… só vendo o codigo, tem como postar ?
G
guirald
cara, eu apenas copiei e colei o código que vc disponibilizou acima.
Será que pode ter algo nele que nenhum de nós percebemos?