[RESOLVIDO] Javascript dentro do método java

Certo, vamos la:

Vamos supor que eu tenha uma classe Usuario, com id e nome. Na minha pagina eu tenho um datatable com usuarios, e um botão!

<p:outputPanel>
     <!-- Renderizado caso não tenha nenhum user escolhido -->
     <p:dataTable value="#{bean.listUsuarios}" var="usuario">
          <p:column headerText="Usuario">
               <h:outputText value="#{usuario.nome}" />
          </p:column>
          <p:column>
                <p:commandButton value="Abrir cadastro">
                     <f:setPropertyActionListener value="#{usuario}" target="#{bean.selectedUser}" />
                </p:commandButton>
          </p:column>
     </p:dataTable>
</p:outputPanel>
<p:dialog widgetVar="dlgUsuario" id="idDlgUsuario">
   <h:form>
       <h:outputText value="#{bean.selectedUser.nome}, selecionado!" />
   </h:form>
</p:dialog>

Ai no bean :


//...
public void setSelectedUser(User user)
{
     this.selectedUser = user;
     
     // org.primefaces.context.RequestContext.getCurrentInstance() -> pega a "pagina atual"
     // .execute() -> executa uma ação
     // No primefaces, quando voce cria um dialog, ele gera um js, .show() e .hide() pro widgetVar, então
     // dlgUsuario.show() -> Exibe o dlgUsuario.
     // no caso de um botão, voce colocaria oncomplete="dlgUsuario.show"
     // ja neste caso, a gente pega a pagina, e executa o comando dlgUsuario.show()!!
     org.primefaces.context.RequestContext.getCurrentInstance().execute("dlgUsuario.show()");
}
//...

brufelipe,

cara, tu é fera.

Me ajudou muito muito muito mesmo garoto. Ganhei o dia com seu ensinamento.

Muito Obrigado de verdade.

Você teria alguma literatura para me indicar?

Abs

Camilo Oscar

Camilo, literatura mesmo eu não tenho cara. A melhor dica que eu posso te dar é: pratique!

A um ano atrás, eu não sabia nem o que era java. Pedi estágio em uma empresa, e comecei a trabalhar com desenvolvimento web java. Foi na prática, na curiosidade, e na marra, que acabei aprendendo hehe.
Quanto a literatura, eu te falo uma coisa: Documentação! Voce encontra praticamente tudo nas documentações!

Fico feliz em poder ter ajudado.
Abraços, e sucesso!

:thumbup:

ps: Apenas corrigindo uma falha minha no post anterior, no oncomplete, eu coloquei oncomplete=“dlgUsuario.show”, no caso de funcões, precisa de “()”, então o certo seria oncomplete=“dlgUsuario.show()”, igual no execute!