Quantcast
Channel: GUJ - Tópicos com a tag primefaces
Viewing all 578 articles
Browse latest View live

Jsf, primefaces, Datable e dialog - problema na validação

$
0
0

@elwerle escreveu:

To fazendo uma tela com um dataTable do primefaces, onde listo os dados de uma tabela, e a partir dela edito o registro em um dialog. Tudo funcionando ok.

O meu problema é quando faço uma validação e retorno um erro. Tipo tendo um campo do banco com unique ex campo descrição, verifico se já existe, se sim retorno a mensagem de erro e não salva, como deve ser. Só que ai ele dá o update no datatable, como deveria caso estivesse sem erro de validação. Fiz uma alteração pra ele só dar o update se estiver ok via context.update("frm:tblAss") deu certo não atualizou o dataTable quando com erro. Mas quando eu clico no mesma linha da dataTable ele me mostra no dialog o valor do registro que tinha no erro e não o valor que tá aparecendo no DataTable.

Se alguem tiver uma ideia de como melhor isso.

XHTML

<h:form id="frm">
        <p:messages autoUpdate="true" closable="true" />

        <p:dataTable id="tblAss" var="ass" value="#{tipoAssinaturasBean.listaTipoAssinaturas}"
                     emptyMessage="Nenhum registro encontrado." style="width:800px"
                     paginator="true" paginatorAlwaysVisible="false" paginatorPosition="bottom" rows="15">

            <p:column headerText="Código" width="10%">
                <h:outputText value="#{ass.id}"/>
            </p:column>
            <p:column headerText="Descrição">
                <h:outputText value="#{ass.descricao}"/>
            </p:column>

            <p:column width="10%" style="text-align: center">
                <p:commandButton icon="ui-icon-pencil" title="Editar" oncomplete="PF('dlgAlt').show();"
                                 process="@this" update="frm:dlg">
                    <f:setPropertyActionListener target="#{tipoAssinaturasBean.tipoAssinatura}" value="#{ass}"/>
                    <p:resetInput target="frm:grid"/>
                </p:commandButton>
                <p:commandButton icon="ui-icon-trash" title="Excluir" oncomplete="PF('cfmExclusao').show();"
                                 process="@this" update=":frm:cfm">
                    <f:setPropertyActionListener target="#{tipoAssinaturasBean.tipoAssinatura}" value="#{ass}"/>
                </p:commandButton>
            </p:column>


        </p:dataTable>

        <p:commandButton value="Novo" icon="ui-icon-document" style="margin-top: 5px" oncomplete="PF('dlgAlt').show();" 
                         process="@this" update="frm:dlg" action="#{tipoAssinaturasBean.novo}" >
            <p:resetInput target="frm:grid"/>
        </p:commandButton>


        <p:confirmDialog header="Exclusão Tipo Assinatura" widgetVar="cfmExclusao" id="cfm"
                         message="Tem certeza que deseja excluir tipo de Assinatura #{tipoAssinaturasBean.tipoAssinatura.id}?">
            <p:button value="Não" onclick="PF('cfmExclusao').hide();return false;" />
            <p:commandButton value="Sim" oncomplete="PF('cfmExclusao').hide();" process="@this"
                             action="#{tipoAssinaturasBean.excluir()}" update=":frm:tblAss"/>
        </p:confirmDialog>

        <p:dialog header="Alterações" widgetVar="dlgAlt" id="dlg" modal="true" >             
            <p:messages id="msg" />
            <p:panelGrid id="grid" columns="2">
                <p:outputLabel value="Código" for="cod" />
                <p:inputText id="cod" value="#{tipoAssinaturasBean.tipoAssinatura.id}" disabled="true" />

                <p:outputLabel value="Descrição" for="desc"/>
                <p:inputText id="desc" value="#{tipoAssinaturasBean.tipoAssinatura.descricao}" />
            </p:panelGrid>
            <p:commandButton value="Salvar" action="#{tipoAssinaturasBean.salvar()}" 
                             oncomplete="if(!args.validationFailed &amp;&amp; args.salvo){ PF('dlgAlt').hide() }"
                             process="@this frm:dlg" update="msg grid"/>

        </p:dialog>

    </h:form>

Método Salvar

public void salvar() {

    RequestContext context = RequestContext.getCurrentInstance();
    context.addCallbackParam("salvo", false);

    tipoAssinaturasRn.salvar(tipoAssinatura);

    if(!listaTipoAssinaturas.contains(tipoAssinatura)){
        listaTipoAssinaturas.add(tipoAssinatura);
    }
    context.addCallbackParam("salvo", true);
    context.update("frm:tblAss");
    FacesUtil.addInfoMessage("Tipo Assinatura salvo com Sucesso.");
}

Mensagens: 1

Participantes: 1

Ler tópico completo


Select IN(select) pegando só o primeiro id da coluna

$
0
0

@zicky23 escreveu:

Estou com uma dúvida, meu Select não está se comportando de forma que eu esperava.

Segue o Select como seria se fosse fixa os ID's dentro do IN (assim funciona):

select id_violencia,nome_violencia from lista_violencias 
                                   where id_violencia IN(1,2,3,4,5)

e esse é o Select que estou tentando e está voltando apenas o primeiro ID's de uma coluna string chamada selTipoViolencia que contém 1,2,3,4,5,6,7,8:

select id_violencia,nome_violencia from lista_violencias 
                          where id_violencia IN(select selTipoViolencia
       		                 from ocorrencias where id_ocorrencia = 2)

Como resolver esse problema?

Mensagens: 6

Participantes: 3

Ler tópico completo

actionListener não funciona com url e '?faces-redirect=true'

$
0
0

@Ewerthon_A escreveu:

Pessoal, uso a tag < p:layoutUnit> com os menus da minha aplicação, quando clico em sair teria que atualizar a tela principal.xhtml que fica em outro layout, o que não acontece, quando uso "
url="pages/principal.xhtml/pages/principal.xhtml?faces-redirect=true" " o metodo sair( ) no BEAN não e chamado, assim o funcionário continua logado e não recebe null.

<p:menuitem value="Sair" actionListener="#{autenticacaoBean.sair}" 
          update=":paneLogin" icon="ui-icon-power" url="/pages/principal.xhtml?faces-redirect=true"/>  </p:submenu>`

Quando uso sem URL no menu chama o metodo normalmente mas não atualiza a tela principal'

public String sair() {
        funcionarioLogado = null;
        
        return "pages/principal.xhtml?faces-redirect=true";
}

Resumindo; quando clicar em sair tem que redirecionar para a tela principal, mas com as mesnsagem de "saida do sistema" controlado por redirect , quando clico em sair a msg abaixo não aparece.

<p:link rendered="#{autenticacaoBean.funcionarioLogado.senha == null}" outcome="/pages/autenticacao.xhtml" styleClass="link"
style="font-size: 12px; font-style: italic; color: blue" value="Para entrar novamente, clique aqui">
</p:link>

Mensagens: 2

Participantes: 1

Ler tópico completo

Como excluir objetos dentro de uma lista dataTable do JSF -Prime Faces?

$
0
0

@Ricardo_Sou10 escreveu:

Pessoas,É o seguinte estou tentando excluir aqueles dados selecionados... nesta tela de listar,só que quando clico na ação de excluir ele não exclui...

<p:commandLink >
	<left>
		<h:graphicImage library="imagens" name="editar.png" width="30" height="30"/>
	</left>
</p:commandLink>       


<p:commandLink
	process="tabela" action="#{controlerBean.excluir(funcionarioSelecionados)}"  >                         
	<left>
		<h:graphicImage library="imagens" name="lixo.png" width="30" height="30"/>
	</left>                 
</p:commandLink>


<p:dataTable id="tabela" var="funcionario" value="#{controlerBean.funcionarios}" selection="#{controlerBean.funcionarioSelecionados}" rowKey="#{funcionario.cpf}" style="margin-bottom:0">

	<f:facet name="header">

	</f:facet>

	<p:ajax event="rowSelect" />

	<p:column selectionMode="multiple" style="width:16px;text-align:center" />

	<p:column  filterBy="#{funcionario.cpf}" headerText="CPF" footerText="Usúarios "            filterMatchMode="contains">
		<h:outputText value="#{funcionario.cpf}" />
	</p:column>

	<p:column headerText="Nome">
		<h:outputText value="#{funcionario.nome}" />
	</p:column>

	<p:column headerText="Matricula">
		<h:outputText value="#{funcionario.matricula}"/>
	</p:column>

	<p:column headerText="Diretoria">
		<h:outputText value="#{funcionario.diretoria}"/>
	</p:column>

	<p:column  headerText="Gerencia">
		<h:outputText value="#{funcionario.departamento}"/>
	</p:column>

	<p:column  headerText="Divisao">
		<h:outputText value="#{funcionario.divisao}"/>
	</p:column>

	<p:column  headerText="Cargo">
		<h:outputText value="#{funcionario.cargo}"/>
	</p:column>                              

</p:dataTable>        
<br/><br/><br/>


</h:form>

</ui:define>

</ui:composition>

Segue meu bean

import br.com.grande_recife.DAO.Conexao;
import br.com.grande_recife.DAO.DeletarCadastro;
import br.com.grande_recife.util.Funcionario;
import java.io.Serializable;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import java.sql.ResultSet;
import java.util.Iterator;
import javax.faces.bean.SessionScoped;

/**
 *
 * @author rimendes
 */
@ManagedBean
public class ControlerBean implements Serializable {

    private List<Funcionario> funcionarios = this.listarDados();

    private List<Funcionario> funcionarioSelecionados;
    // private PreparedStatement stmte;

    public List<Funcionario> getFuncionarios() {
        return funcionarios;
    }

    public void setFuncionarios(List<Funcionario> funcionarios) {
        this.funcionarios = funcionarios;
    }

    public List<Funcionario> getFuncionarioSelecionados() {
        return funcionarioSelecionados;
    }

    public void setFuncionarioSelecionados(List<Funcionario> funcionarioSelecionados) {
        this.funcionarioSelecionados = funcionarioSelecionados;
    }

    public List<Funcionario> listarDados() {

        //gerencia
        String sqq = "select funcionario.cpf , nome, matricula,diretoria,departamento,divisao, cargo "
                + "from funcionario "
                + "left JOIN dadosprofissionais "
                + "ON dadosprofissionais.cpf = funcionario.cpf";

        List<Funcionario> lista = new ArrayList<Funcionario>();

        try {
            Statement tt = Conexao.getConexao().createStatement();
            //PreparedStatement tt = Conexao.getConexao().prepareStatement(sqq);
            //tt.setString(1, sqq);
            ResultSet resul = tt.executeQuery(sqq);

            while (resul.next()) {

                Funcionario funcionario = new Funcionario();
                funcionario.setCpf(resul.getString("cpf"));
                funcionario.setNome(resul.getString("nome"));
                funcionario.setMatricula(resul.getInt("matricula"));
                funcionario.setDiretoria(resul.getString("diretoria"));
                funcionario.setDepartamento(resul.getString("departamento"));
                funcionario.setDivisao(resul.getString("divisao"));
                funcionario.setCargo(resul.getString("cargo"));

                lista.add(funcionario);

            }

        } catch (SQLException ex) {

            Logger.getLogger(ControlerBean.class.getName()).log(Level.SEVERE, null, ex);
            //Logger.getAnonymousLogger(ListarBean.class.getName()).log(Level.SEVERE, null, ex);
        }
        return lista;
    }

    public void excluir(String nome) {

        DeletarCadastro excluir = new DeletarCadastro();
        //excluir.deletarFuncionario(funcionario);

        for (Funcionario func : funcionarioSelecionados) {
            //funcionarioSelecionados.get(i).getCpf();
           // funcionarioSelecionados.get(i).getMatricula();
           // funcionarioSelecionados.get(i).getDiretoria();
            //funcionarioSelecionados.get(i).getDepartamento();
            //funcionarioSelecionados.get(i).getDivisao();
            // funcionarioSelecionados.get(i).getCargo();
            funcionarioSelecionados.remove(func);
           excluir.deletarFuncionario((Funcionario) funcionarioSelecionados);
          
              
        }

    }

}

Mensagens: 11

Participantes: 2

Ler tópico completo

Após Logout com Spring Security é possível ver páginas anteriores pelo botão Voltar

$
0
0

@Mario_dos_Santos escreveu:

Olá pessoal, bom dia!

Estou praticando meus estudos com desenvolvimento Web e tenho um problema após o Logout do Spring Security no meu projeto (JSF, Primefaces, Hibernate, Spring e Spring Security, Tomcat 7).
Depois de acionar o Link de sair na página, o Spring sai e redireciona para a página de Login novamente.
Mas se clicar no botão Voltar do navegador, da para ver o conteúdo das páginas anteriores.
Se clicar em qualquer botão ele devolve para a página de Login novamente indicando que a sessão já foi encerrada, mas ainda permite ver as páginas acessadas anteriormente.
Já coloquei as Tags EXPIRES e PRAGMA conforme o post abaixo mas sem sucesso.

Meu arquivo applicationContext-security.xml :

<?xml version="1.0" encoding="UTF-8"?>
<b:beans xmlns="http://www.springframework.org/schema/security"
        xmlns:b="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/security
            http://www.springframework.org/schema/security/spring-security.xsd">
     <http>
        <intercept-url pattern="/admin/**" access="ROLE_ADMINISTRADOR" />
        <intercept-url pattern="/restrito/**" access="ROLE_USUARIO" />
        <form-login login-page="/publico/login.jsf" 
            always-use-default-target="true" 
            default-target-url="/restrito/principal.jsf" 
            authentication-failure-url="/publico/login.jsf?login_error=1" />
        <logout invalidate-session="true" logout-success-url="/publico/login.jsf"/>
        <remember-me />
    </http>
</b:beans>

Alguém já passou por esse problema que possa me ajudar, por favor?

Mensagens: 2

Participantes: 2

Ler tópico completo

JSF 2.2 UploadFile com StreamedContent não renderiza imagem

$
0
0

@bergwin escreveu:

Boa Tarde, já procurei em muitos lugares e não consigo encontrar uma solução para fazer upload e mostrar antes de comitar, não aparece nenhum erro, só mostra a imagem quebrada, agradeço desde já a atenção e ajuda de todos, segue abaixo partes dos códigos relacionados

Classe Modelo
public StreamedContent getImagem() {
     FacesContext context = FacesContext.getCurrentInstance();
     if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {
         return new DefaultStreamedContent();
     } else {
         ByteArrayOutputStream bos = new ByteArrayOutputStream();
 	return new DefaultStreamedContent(new ByteArrayInputStream(content), contentType);
     }
 }           
 public void handleFileUpload(FileUploadEvent event) {
      Foto foto = new Foto();
      for (Foto f : orcamentoItem.getFotos()) {
		if (f.getNome().equals(event.getFile().getFileName())) {
		    foto = f;
		}
	    }
	    foto.setNome(event.getFile().getFileName());
	    foto.setContent(event.getFile().getContents());
        foto.setContentType(event.getFile().getContentType());
	    orcamentoItem.getFotos().add(foto);
	} 
 Páginas XHTML
 	<h:outputText value="Imagens" />
<p:fileUpload  fileUploadListener="#{orcamentoBean.handleFileUpload}"
    update="lighbox1" mode="advanced" auto="true"
    allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />

     <p:lightBox styleClass="imagebox" id="lighbox1">
     <ui:repeat value="#{orcamentoBean.orcamentoItem.fotos}" var="var">
          <p:graphicImage value="#{var.imagem}" />
     </ui:repeat>
     </p:lightBox>

Abraços!

Mensagens: 1

Participantes: 1

Ler tópico completo

Converter para Object

$
0
0

@JHenriqueR escreveu:

E ai pessoal,

alguém consegue me ajuda nesse converter, não estou conseguindo fazer essa conversão. Ou se tiver algum tutorial amigável que possam me passar agradeço tbm.

retorna "Produtos: Erro de validação: o valor não é válido"

	<h:panelGrid columns="2" style="margin-bottom:10px" cellpadding="5"
		columnClasses="label, value">

		<p:outputLabel for="produtos" value="Produtos: " />

		<p:selectManyMenu id="produtos"
			value="#{controleCestaBasica.produtos}" filter="true"
			filterMatchMode="contains" showCheckbox="true" converter="converterProduto">

			<f:selectItems value="#{controleCestaBasica.produtos}" var="p"
				itemLabel="#{p.nome}" itemValue="#{p.idproduto}" />

			<p:column>
				<h:outputText styleClass="ui-theme ui-theme-#{p.nome}" />
			</p:column>

			<p:column>
				<h:outputText value="#{p.nome}" />
			</p:column>

		</p:selectManyMenu>

	</h:panelGrid>

@FacesConverter("converterProduto")
public class ConverterProduto implements Converter {

public Object getAsObject(FacesContext fc, UIComponent uic, String value) {
	if (value != null && value.trim().length() > 0) {
		try {
			ProdutoDAO pdao = new ProdutoDAO();
			Produto prod = pdao.getProduto(Integer.parseInt(value));
			return prod;
		}	
		catch (Exception e) {
			// TODO: handle exception
			throw new ConverterException(new FacesMessage(
					FacesMessage.SEVERITY_ERROR, "Erro na conversão", "Valor inválido."));
		}
	} else {
		return null;
	}
}

public String getAsString(FacesContext fc, UIComponent uic, Object object) {
	if (object != null) {
		String s = object.toString();
		return s;
	} else {
		return null;
	}
}

Mensagens: 1

Participantes: 1

Ler tópico completo

Seleção do "SelectOneRadio" do Primefaces Obrigatória!

$
0
0

@lucoso2 escreveu:

Fala galera, boa noite!

Então to com um problema que acredito ser "idiota" (desculpe o termo xD) mas não estou conseguindo resolver aqui.....

Tenho um componente SelectOneRadio do primefaces e quero que seja obrigatorio o usuario selecionar uma opção....coloquei a opção required="true", porém qndo seleciono uma das opções ele diz que é "obrigatorio um valor", como se não estivesse selecionado ou algo assim!

Alguém tem alguma idéia porque isso esta acontecendo? É necessário acrescentar alguma outra coisa para garantir que a seleção seja obrigatoria?

Agradeço desde já!

Mensagens: 2

Participantes: 2

Ler tópico completo


Erro ao tentar carregar selectOneMenu após clicar no editar?

$
0
0

@Ewerthon_A escreveu:

Ola pessoal, Estou tentando editar o objeto Fornecedor que possui a classe Endereço, consigo selecionar/buscar os dados mas não inserir os dados no selectOneMenu, que são Cidade e Estado, sendo que cidade esta dentro de Endereco.
Como preencher os selectOneMenu com com os objeto selecionado?


<p:dialog header="Cadastro de Fornecedores" widgetVar="dialogo"
            closeOnEscape="true" draggable="false" resizable="false"
            modal="true" closable="true" showEffect="fade" appendTo="@(body)"
            showHeader="fade">
            <h:form id="formCadastro">
                <h:panelGrid columns="2">

                    <p:outputLabel for="codigo" value="Código:" />
                    <p:inputText id="codigo"
                        value="#{fornecedorBean.fornecedor.codigo}"
                        placeholder="preenchimento automático!" readonly="true" size="23" />

                    <p:outputLabel for="razaoSocial" value="Razão Social:" />
                    <p:inputText id="razaoSocial"
                        value="#{fornecedorBean.fornecedor.razaoSocial}" maxlength="60"
                        size="55" />

                    <p:outputLabel for="nomeFantasia" value="Nome Fantasia:" />
                    <p:inputText id="nomeFantasia"
                        value="#{fornecedorBean.fornecedor.nomeFantasia}" maxlength="60"
                        size="55" />

                    <p:outputLabel for="responsavelLegal" value="Responsável Legal:" />
                    <p:inputText id="responsavelLegal"
                        value="#{fornecedorBean.fornecedor.responsavelLegal}"
                        maxlength="60" size="55" />

                    <p:outputLabel value="E-mail" />
                    <p:inputText value="#{fornecedorBean.fornecedor.email}"
                        maxlength="60" size="50" />

                        <p:separator />
                        <p:separator />

                        <p:outputLabel value="Logradouro:" />
                        <p:inputText value="#{fornecedorBean.endereco.rua}"
                            maxlength="60" size="55" />

                       
                        <p:outputLabel value="Estado:" />
                        <p:selectOneMenu id="estado" filter="true"
                            converter="omnifaces.SelectItemsConverter"
                            value="#{fornecedorBean.estado}">
                            <f:selectItem noSelectionOption="true"
                                itemLabel="Selecione um estado" />
                            <f:selectItems value="#{fornecedorBean.estados}" var="estado"
                                itemValue="#{estado}" itemLabel="#{estado.nome}" />
                            <p:ajax listener="#{fornecedorBean.popular}"
                                update=":formCadastro:cidade" />
                        </p:selectOneMenu>

                        <p:outputLabel for="cidade" value="Cidade:" />
                        <p:selectOneMenu id="cidade" filter="true" required="true"
                            requiredMessage="O campo 'Cidade' é obrigatório"
                            converter="omnifaces.SelectItemsConverter"
                            value="#{fornecedorBean.endereco.cidade}">
                            <f:selectItem noSelectionOption="true"
                                itemLabel="Selecione uma cidade" />
                            <f:selectItems value="#{fornecedorBean.cidades}" var="cidade"
                                itemValue="#{cidade}" itemLabel="#{cidade.nome}" />
                        </p:selectOneMenu>
                    </h:panelGrid>
                    <center>
                        <h:panelGrid columns="2">
                        
                            <p:commandButton value="Salvar"
                                actionListener="#{fornecedorBean.salvar}"
                                oncomplete="PF('dialogo').hide();"
                                update=":formListagem:tabela">
                            </p:commandButton>
                                
                            <p:commandButton value="Fechar"
                                oncomplete="PF('dialogo').hide();" />
                                
                        </h:panelGrid>
                    </center>
            </h:form>
        </p:dialog>`

FornecedorBean

public void editar(ActionEvent evento) {
    try {
           fornecedor = (Fornecedor)evento.getComponent().getAttributes().get("fornecedorSelecionado");   EnderecoDAO enderecoDAO = new EnderecoDAO();
endereco= enderecoDAO.buscar(fornecedor.getCodigo());

fornecedor.setEndereco(endereco);
 endereco.setCidade(endereco.getCidade());

...


EmpresaDomain

@MappedSuperclass
public class Empresa extends GenericDomain {    

    private static final long serialVersionUID = 1L;

    @Column(name="razao_social", length = 60, nullable = false)
    private String razaoSocial;
    
    @Column(name="nome_fantasia", length = 60, nullable = false)
    private String nomeFantasia;
   
@ManyToOne
@JoinColumn(nullable = true)
private Endereco endereco;`

FornecedorDomain

public class Fornecedor extends Empresa {

    @Column(name="responsavel_legal", length = 60, nullable = false)
    private String responsavelLegal;

Mensagens: 2

Participantes: 1

Ler tópico completo

Após Logout com Spring Security é possível ver páginas anteriores pelo botão Voltar

$
0
0

@Mario_dos_Santos escreveu:

Olá pessoal, boa noite!

Meu Post anterior foi fechado sem resposta, então vamos novamente ...
Estou praticando meus estudos com desenvolvimento Web e tenho um problema após o Logout do Spring Security no meu projeto (JSF, Primefaces, Hibernate, Spring e Spring Security, Tomcat 7).
Depois de acionar o Link de sair na página, o Spring sai e redireciona para a página de Login novamente.
Mas se clicar no botão Voltar do navegador, da para ver o conteúdo das páginas anteriores.
Se clicar em qualquer botão ele devolve para a página de Login novamente indicando que a sessão já foi encerrada, mas ainda permite ver as páginas acessadas anteriormente.
Já coloquei as propriedades EXPIRES e PRAGMA na Tag META mas não funcionou.

<meta http-equiv="EXPIRES" content="0" />
<meta http-equiv="pragma" content="nocache" />

Alguém já passou por esse problema que possa me ajudar, por favor?

Mensagens: 11

Participantes: 4

Ler tópico completo

Erro no Template do JSF com Layout do Primefaces

$
0
0

@lucoso2 escreveu:

Estou desenvolvendo um sistema pra web utilizando JSF com Primefaces...fiz um template aqui e estou tendo um problema que não consigo resolver de jeito nenhum!!

Quando eu coloco no conteúdo um dialog modal...este dialog fica inacessivel e trava o sistema inteiro....e não consigo preencher os campos necessarios para cadastrar um paciente!

Procurei no google e vi algumas pessoas resolvendo este problema usando o appendTo="@(body)"...fiz isso no meu e resolveu este problema....porém agora quando vou cadastrar o paciente os valores NÃO são setados no objeto que estou tentando persistir!!!

Fazendo uns testes...criei uma pagina xhtml, e sem usar o template (mas usandoo mesmo dialog) o objeto é persistido normalmente sem nenhum erro!! Por isso sei que o problema esta no Template que eu fiz....mas ja tentei de tudo para resolver e não consegui....

No meu Template uso o componente layout e layoutUnit para separar as divisões na tela!!!!

Segue meu Template:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
		xmlns:h="http://xmlns.jcp.org/jsf/html"
		xmlns:f="http://xmlns.jcp.org/jsf/core"
		xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
		xmlns:p="http://primefaces.org/ui">
<h:head>
<meta charset="UTF-8"/>
<title>Clinica Sao Mateus</title>
<h:outputStylesheet library="saomateus" name="estilo.css"/>
<ui:insert name="jscript" />
	
</h:head>


<h:body>

<p:layout style="min-width:1400px;max-width:1400px;min-height:900px" fullPage="true">
	<p:layoutUnit position="north" size="100">
		<h:form>
		<h:graphicImage library="saomateus" name="logo-clinica.png" height="50"></h:graphicImage>

		<h:outputLink id="linklogout" title="Logout" style="text-align:center" value="#{request.contextPath}/security_logout">
			<h:outputLabel value="Sair Do Sistema" />		
		</h:outputLink>	
		</h:form>
	</p:layoutUnit>
	
	<p:layoutUnit position="west" size="220" header="Menu" resizable="true" closable="true" collapsible="true">
			<h:form>
				<p:panelMenu style="width=200px">
					
       				<p:submenu label="Agendamentos" icon="ui-icon-check">
						<p:menuitem value="Consultas" outcome="Consultas"/>
						<p:menuitem value="Exames" outcome="Exames"/>
        			</p:submenu>
       	
       				<p:submenu label="Pessoas" icon="ui-icon-check">
						<p:menuitem value="Pacientes" outcome="Pacientes"/>
						<p:menuitem value="Medicos" outcome="Medicos"/>
						<p:menuitem value="Funcionarios" outcome="Secretarias"/>		 
		           	</p:submenu>
		           	
		           	<p:submenu label="Convenios" icon="ui-icon-check">
						<p:menuitem value="Consultar" outcome="Convenios"/>		 
		           	</p:submenu>
       	
       				<p:submenu label="Relatorios" icon="ui-icon-check">
						<p:menuitem value="Criar" outcome="CriarRelatorio"/>
						<p:menuitem value="Consultar" outcome="ConsultarRelatorios"/>
       				</p:submenu>
       	
       				<p:submenu label="Usuarios" icon="ui-icon-check">
						<p:menuitem value="Consultar" outcome="ConsultarUsuarios"/>
       				</p:submenu>		 
				</p:panelMenu>
			</h:form>
	</p:layoutUnit>
	
	<p:layoutUnit position="center" size="600">
		<h:form>
		<ui:insert name="corpo"/>
		</h:form>	
	</p:layoutUnit>



<p:layoutUnit position="south" size="30">
    <!-- Rodape -->
</p:layoutUnit>
</p:layout>

<h:form>
	 <p:confirmDialog global="true" showEffect="fade" hideEffect="fade">
        	<p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
        	<p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
     </p:confirmDialog>
</h:form>     

</h:body>
</html>

Quem puder me ajudar, agradeço desde já!!!

Mensagens: 1

Participantes: 1

Ler tópico completo

Dúvidas sobre em páginas .xhtml

$
0
0

@Bruno_Takiy escreveu:

Olá, pessoal. Estou com dificuldades em um programa que estou montando atualmente: Neste programa, há uma tela de pesquisa de usuários cadastrados. Ao mesmo tempo que serão mostrados os dados dos usuários, cada registro possuirá dois botões, um para "bloquear" este cadastro e outro para abrir uma tela para editar os dados deste cadastro.


No momento eu tenho a seguinte ideia: quando o cadastro for bloqueado, o usuário não poderá mais editar os dados contidos neste registro, ou seja, caso o cadastro esteja bloqueado, o botão "editar" deve ser desabilitado. Mas com o método que estou utilizando, se existir um registro no meio de todos com o status "bloqueado", todos os botões "editar" de todos os registros estão sendo desabilitados. Eu quero que seja desabilitado somente o botão "editar" do registro que esteja com o cadastro bloqueado.
Abaixo está o meu arquivo .xhtml e arquivo Bean.

MEU ARQUIVO .XHTML

<ui:composition template="/WEB-INF/template/LayoutPadrao.xhtml"
    xmlns="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">
    
    <ui:define name="titulo">Pesquisar Usuarios</ui:define>
    
    <ui:define name="corpo">
        <h:form id="frmPesquisa">
        <p:messages showDetail="false" showSummary="true" autoUpdate="true" />
        
        <h1>Pesquisa de usuários</h1>
        
        <p:toolbar style="margin-top: 20px">
            <p:toolbarGroup>
                <p:commandButton value="Pesquisar" action="#{pesquisaUsuarioBean.pesquisar}" update="@form" />
            </p:toolbarGroup>
            <p:toolbarGroup align ="right">
                <p:button value="Novo" outcome="/usuarios/CadastroUsuario"/>
            </p:toolbarGroup>
        </p:toolbar>
        
        <p:panelGrid columns="2" id="painel" style="width: 100%; margin-top: 20px" 
        columnClasses="rotulo, campo">
            <p:outputLabel value="Nome" for="nome"/>
            <p:inputText id="nome" size="60" maxlength="80"
            value="#{pesquisaUsuarioBean.filtro.nome}"/>
        </p:panelGrid>
        
        <p:dataTable id="usuariosTable"
                value="#{pesquisaUsuarioBean.usuariosFiltrados}" var="usuario"
                style="margin-top: 20px" emptyMessage="Nenhum usuario encontrado."
                rows="20" paginator="true" paginatorAlwaysVisible="false"
                paginatorPosition="bottom">
                
        <p:column headerText="Id" style="text-align: center; width: 100px">
                <h:outputText value="#{usuario.id}" />
        </p:column>
        
        <p:column headerText="Nome" style="text-align: center; width: 100px">
                <h:outputText value="#{usuario.nome}" />
        </p:column>
        
        <p:column headerText="RG" style="text-align: center; width: 100px">
                <h:outputText value="#{usuario.rg}" />
        </p:column>
        
        <p:column headerText="CPF" style="text-align: center; width: 100px">
                <h:outputText value="#{usuario.cpf}" />
        </p:column>
        
        <p:column headerText="Email" style="text-align: center; width: 100px">
                <h:outputText value="#{usuario.email}" />
        </p:column>
        
        <p:column headerText="Telefone" style="text-align: center; width: 100px">
                <h:outputText value="#{usuario.telefone}" />
        </p:column>
        
        <p:column headerText="Endereço" style="text-align: center; width: 100px">
                <h:outputText value="#{usuario.endereco}" />
        </p:column>
        
        <p:column headerText="Estado" style="text-align: center; width: 100px">
                <h:outputText value="#{usuario.estado}" />
        </p:column>
        
        <p:column headerText="CEP" style="text-align: center; width: 100px">
                <h:outputText value="#{usuario.cep}" />
        </p:column>
        
        <p:column headerText="Status" style="text-align: center; width: 100px">
                <h:outputText value="#{usuario.status}" />
        </p:column>
        
        <p:column headerText="Operações" style="width: 100px; text-align: center">
// este é o botão que está em questão
                    <p:button outcome="/usuarios/CadastroUsuario" icon="ui-icon-pencil" title="Editar">
                        <f:param name="usuario" value="#{usuario.id}" />
                    </p:button>
                <p:commandButton icon="ui-icon-bloquear" title="Alterar status do cadastro" oncomplete="PF('confirmacaoExclusao').show()" process="@this" update="frmPesquisa:confirmacaoExclusaoDialog">
                    <f:setPropertyActionListener value="#{usuario}" target="#{pesquisaUsuarioBean.usuarioSelecionado}"/>    
                </p:commandButton>
        </p:column>
        
                
        </p:dataTable>
        
            <p:confirmDialog header="Alterar status do cadastro"
                message="Tem certeza que deseja alterar o status do cadastro do usuário #{pesquisaUsuarioBean.usuarioSelecionado.nome}?"
                widgetVar="confirmacaoExclusao" id="confirmacaoExclusaoDialog">
                <p:button value="Não"
                    onclick="PF('confirmacaoExclusao').hide(); return false;" />
                <p:commandButton value="Sim"
                    oncomplete="PF('confirmacaoExclusao').hide();" action="#{pesquisaUsuarioBean.excluir}" process="@this" update="frmPesquisa:usuariosTable"/>
            </p:confirmDialog>
    </h:form>
    </ui:define>
</ui:composition>

Neste código, o botão que desejo desabilitar é o botão que está com a anotação "este é o botão que está em questão"


ARQUIVO BEAN

@Named
@ViewScoped
public class PesquisaUsuarioBean implements Serializable{

    private static final long serialVersionUID = 1L;

    @Inject
    private UsuariosRep usuarios;

    private UsuarioFilter filtro;

    private List<Usuario> usuariosFiltrados;

    private Usuario usuarioSelecionado;

    @Inject
    private CadastroUsuarioService cadastroUsuarioService;

    public PesquisaUsuarioBean() {
        filtro = new UsuarioFilter();
    }
    
    public boolean isInativo() {
        boolean inativo = false;
        for (int x = 0;x < this.usuariosFiltrados.size(); x++)
        {
            String ContasInativas = this.usuariosFiltrados.get(x).getStatus();
            if ( ContasInativas.equals("Inativo"))
            {
                inativo = true;
            }
        }
        return inativo;
    }
    
    public String verificarStatus(){
        FacesContext context = FacesContext.getCurrentInstance();
        String status = null;
        if (this.usuarioSelecionado.getStatus().equals("Ativo"))
        {
            status = "/usuarios/CadastroUsuario";
        }
        else
        {
            context.addMessage(null, new FacesMessage("Este usuário está com o cadastro Inativo. Ele não pode ser editado"));
        }
        return status;
    }

    public void excluir() {
        FacesContext context = FacesContext.getCurrentInstance();
        if (this.usuarioSelecionado.getStatus().equals("Ativo"))
        {
            this.usuarioSelecionado.setStatus("Inativo");
        }
        else
        {
            this.usuarioSelecionado.setStatus("Ativo");
        }
        try {
            this.cadastroUsuarioService.salvar(this.usuarioSelecionado);
            context.addMessage(null, new FacesMessage("O status do cadastro do usuário " + usuarioSelecionado.getNome() + " com o CPF : " + usuarioSelecionado.getCpf() + " foi alterado com sucesso."));
        } catch (NegocioException e) {
            FacesMessage mensagem = new FacesMessage(e.getMessage());
            mensagem.setSeverity(FacesMessage.SEVERITY_ERROR);
            context.addMessage(null, mensagem);
        }
    }

    public void pesquisar() {
        usuariosFiltrados = usuarios.filtrados(filtro);
    }

    public List<Usuario> getUsuariosFiltrados() {
        return usuariosFiltrados;
    }

    public UsuariosRep getUsuarios() {
        return usuarios;
    }

    public UsuarioFilter getFiltro() {
        return filtro;
    }

    public Usuario getUsuarioSelecionado() {
        return usuarioSelecionado;
    }

    public void setUsuarioSelecionado(Usuario usuarioSelecionado) {
        this.usuarioSelecionado = usuarioSelecionado;
    }
}

Desde já agradeço qualquer opinião ou sugestão.

Mensagens: 2

Participantes: 2

Ler tópico completo

Grafico primefaces Spark Charts

$
0
0

@Fee_Souza escreveu:

Pessoal seguinte, estou usando primefaces para fazer meus graficos, porem tenho um problema,
os gráficos geram certinho , mas eu tenho q passar o mouse para exibir os valores segue exemplo:

Eu quero q ele sempre apareca os valores la independente se passe o mause ou nao, agracedo desde ja a a ajda

Mensagens: 1

Participantes: 1

Ler tópico completo

Datatable(lazy load) Primefaces volta para primeira página ao usar backspace

$
0
0

@Andrepicoli escreveu:

Pessoal, boa noite!

Procurei em vários lugares e em nenhum me deparei com a possível solução do meu caso.

Tenho um datatable do Primefaces listado com vários objetos anúncio, nesta lista eu utilizo o datatable para detalhar o anúncio caso o usuário tenha interesse de abrir maiores informações, onde o usuário é redirecionado para outra página. Estou usando Lazy load para fazer a paginação (que é o que eu achei que resolveria meu caso), porém se eu estiver na segunda página para frente, ao entrar em um anúncio detalhado e apertar o backspace para voltar, minha datatable volta para a primeira página.

Queria saber se alguém sabe como manter a ultima página que utilizei ao apertar backspace(com os anúncios desta página no datatable). Alguém tem uma sugestão para o meu caso?

Estou usando Hibernate+primefaces neste contexto.

Obrigado por enquanto!

Mensagens: 1

Participantes: 1

Ler tópico completo

Campo de pesquisa

$
0
0

@Bruno_Takiy escreveu:

Olá, pessoal. Estou com uma dúvida sobre o tratamento de textos digitados em campos de pesquisa.
Atualmente, eu estou usando um campo de pesquisa para encontrar registros de usuários no meu banco de dados. Mas está sendo necessário digitar exatamente o nome do usuário. Por exemplo, se existe um usuário chamado João Paulo da Silva no banco de dados, para encontrar o cadastro dele, é necessário digitar João Paulo da Silva no campo de pesquisa, inclusive os maiúsculos e minúsculos. Como que eu poderia fazer para "amenizar" esta rigidez do campo de pesquisa? Ou seja, eu queria que, se eu digitar "joão" ou "paulo" ou "silva", ele já encontrasse o registro.
Estou usando xhtml, primefaces e Java na programação. Como banco de dados estou usando postgreSQL
Desde já agradeço a todas as respostas e sugestões.

Mensagens: 3

Participantes: 2

Ler tópico completo


Mostrar webcam em jsf

$
0
0

@zicky23 escreveu:

Bom dia, tenho no pc mais de uma webcam, estou tentando mostrar em jsf com primefaces as imagens das webcans em tempo real com porém só pega uma das webcans.

segue o código:

<p:dataGrid var="x" value="#{photoCamView.list}" columns="3" layout="grid">
     <p:panel header="#{x.name}">
          <p:photoCam id="photoCam" />
     </p:panel>
</p:dataGrid>

e está listando assim:

public List<Webcam> getList() {
        try {

            list = new ArrayList<>();
            for (Webcam webcam : Webcam.getWebcams()) {
                
            }
        } catch (Exception e) {
            System.out.println("error: " + e);
        }
        return list;
    }

Mensagens: 1

Participantes: 1

Ler tópico completo

Bug na validação de campo texto no JSF PrimeFaces (treeTable)

$
0
0

@danieldestro escreveu:

Estou com um bug em uma página do sistema que precisa validar um campo numérico de forma dinâmica com JSF.

Basicamente, tenho um facelet (xhtml) com um campo que tem validação (com componente do Omnifaces) para verificar os valores mínimo e máximo permitidos após a digitação do usuário (disparado no blur e no ENTER).

Quando o evento de validação é disparado, ocorre um erro que trava (bloqueia) a tela em questão e o usuário não consegue fazer mais nada (aquela tela/layer cinza que bloqueia ação do usuário). Tem que dar um refresh na tela para continuar (nem F5 funciona, tem que clicar no botão refresh).

O navegador me mostra um erro de parsing de JSON no jquery.js provido pelo próprio PrimeFaces, com a seguinte mensagem:

"Uncaught SyntaxError: Unexpected token , in JSON at position 1".

Fiz um hack no jquery.js para exibir o JSON com erro e ele, de fato, tem uma vírgula a mais:

{,"validationFailed":true}

Quando a validação funciona (valor digitado está correto) essa vírgula a mais não existe no JSON.

Fiz alguns testes e percebi que o erro ocorrer porque há algum tipo de incompatibilidade da validação com o componente que existe na mesma tela. Quando eu removo este componente treeTable, a tela e a validação funcionam normalmente. Também percebi que o erro ocorre por conta da ordenação que existe nesse componente (sortBy). Se eu removo este atributo ele também funciona.

Estou usando java 8 (OpenJDK 1.8), Tomcat 7, JSF 2.2.10, PrimeFaces 5.2, PrimeFaces Extensions 3.2.0, OmniFaces 1.14, Spring Faces 2.4.4, Spring Secutiry 3.2.8, Spring 4.2.0.

Segue trecho de código do facelet:

<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:o="http://omnifaces.org/ui"
xmlns:of="http://omnifaces.org/functions"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:casper="http://java.sun.com/jsf/composite/components"
xmlns:sec="http://www.springframework.org/security/tags">

...

    <p:inputText id="discountPercent" widgetVar="discountPercentVar" value="#{myBean.discountPercent}" required="#{editable}">
        <p:ajax listener="#{myBean.calculateDiscount()}" update="pricingFields" process="@widgetVar(dcDiscountPercentVar)" />
        <f:convertNumber maxFractionDigits="2" minFractionDigits="2"/>
        <o:validator validatorId="javax.faces.DoubleRange" minimum="#{myBean.minimumDiscount}" maximum="#{myBean.maximumDiscount}" message="#{of:format2(msg.error_discount, myBean.minimumDiscount, myBean.maximumDiscount)}" />
    </p:inputText>

    ...

    <!-- Pricing Tree -->
    <p:treeTable id="totals" var="node" value="#{myBean.pricingTree}" sortBy="#{node.UIName}">
        <p:column headerText="#{msg.qPricingGrid_breakdown}">
            <h:outputText value="#{node.UIName}"/>
        </p:column>
        <p:column headerText="#{msg.qPricingGrid_quantity}" style="text-align:right">
            <casper:quantity-field class="delivery-units-column" value="#{node.deliveryUnits}"/>
        </p:column>
    </p:treeTable>

Alguma dica?

Mensagens: 1

Participantes: 1

Ler tópico completo

JSF 2.2 impedir Back e Forward button do Browser

$
0
0

@bergwin escreveu:

Bom dia, Tenho um projeto com JSF 2.2 e Primefaces 6, teria alguma forma de impedir as ações do back button e Foward Button do navegador?

Pois Quando faço o login ou o logout do sistema, o usuário pode navegar entre as páginas usandos os botões do navegador.

Já procurei muito e as soluções não funcionaram:

Já tentei fazendo filter e também colocando essas informções de cache no xhtml:

    response.addHeader("Pragma", "no-cache");
    response.addHeader("Cache-Control", "no-cache");
    response.addHeader("Cache-Control", "no-store");
    response.addHeader("Cache-Control", "must-revalidate");
    response.addHeader("Expires", "0");

Muito Obrigado pela atenção e a ajuda de todos!

Abraços!

Mensagens: 1

Participantes: 1

Ler tópico completo

Configuração de projeto Java EE 7 + CDI (Weld) + JFS 2.2 + PrimeFaces + JPA Hibernate

$
0
0

@diegofm300 escreveu:

Pessoa, boa noite.
Preciso de uma ajuda de vocês sobre qual estrutura usar e como configurar um projeto pra usar esses frameworks. Anteriormente conseguir fazer toda a configuração e persistir informações no banco de dados (estou usando Postgres), mas estava usando o controle de transações manual, RESOURCE_LOCAL com TomCat e agora preciso usar Glassfish com controle de transações por conta do servidor, JTA.

Depois de alterar essa configuração do controle de transações, de RESOURCE_LOCAL para JTA, não consegui mais subir meu projeto, então preciso começar a configuração do zero, por exemplo: como deve ser minha estrutura, devo usar beans, DAOs, model? como inicializo um EntityManager? onde o EntityManager deve ficar? Estou meio perdido, se vocês puderem me indicar algum material que me ajude nisso, algum livro, sei lá.

Desde já agradeço quem puder me ajudar.

Mensagens: 2

Participantes: 2

Ler tópico completo

Aplicação não funciona apos adicionar spring security ao projeto

$
0
0

@Adriano12 escreveu:

aparece o seguinte erro:

    ago 11, 2016 10:50:27 PM org.apache.catalina.startup.HostConfig deployDescriptor

GRAVE: Error deploying configuration descriptor C:\Program Files\apache-tomcat-7.0.70\conf\Catalina\localhost\PedidoVenda.xml
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/PedidoVenda]]

Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001409: Ambiguous dependencies for type HttpServletRequest with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private com.oliveira.pedidovenda.controller.LoginBean.request
at com.oliveira.pedidovenda.controller.LoginBean.request(LoginBean.java:0)
Possible dependencies:
- WELD%AbstractBuiltInBean%C:\Users\Adriano\Documents\NetBeansProjects\PedidoVenda\target\PedidoVenda-1.0-SNAPSHOT\WEB-INF\classes%HttpServletRequest,
- Producer Method [HttpServletRequest] with qualifiers [@Any @Default] declared as [[BackedAnnotatedMethod] @Produces @RequestScoped public com.oliveira.pedidovenda.util.jsf.FacesProducer.getHttpServletRequest()]

Mensagens: 1

Participantes: 1

Ler tópico completo

Viewing all 578 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>