Core jsp não funciona com PrimeFaces?

1 resposta
K

Boa tarde caros amigos do GUJ, tenho uma aplicação JSF2 usando PrimaFaces 2.2.1, em certo momento, ao listar uma tabela tenho de fazer um lógica para escrever os botões ativar ou desativar conforme o status
atual da entidade do banco que é representada na tela. Esses botões devem aparecer exclusivamente, obviamente. Para isso tentei usar o core jsp mas aparentemente não estah funcioando com o Prime. Alguém jah teve esse problema e/ou saberia me dar uma sugestão melhor para fazer essa implementação?

<html 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.prime.com.tr/ui"
	xmlns:c="http://java.sun.com/jsp/jstl/core">

<h:body>
	<div id="formBusca">

		<h:form prependId="false">
			<h:commandLink value="Voltar" action="#{LoginBean.doVoltarHome}"
				id="cmdVoltar" />
		</h:form>
		<h:form prependId="false">

			<p:fieldset legend="Controle de Usuários">

				<p:growl id="msg" showDetail="true" life="3000" />

				<h:panelGrid columns="4">
					<h:outputLabel id="olUnidade" value="Unidade:" for="cboUnidade" />
					<h:selectOneMenu id="cboUnidade" 
						value="#{FuncionarioBean.funcionario2.estruturaOrganizacional.idUnidade}">
						<f:selectItem itemValue="0" itemLabel="Todos" />
						<f:selectItems id="selitUnidade"
							value="#{FuncionarioBean.listaSetores}" var="lista"
							itemLabel="#{lista.nmSglUnidade}" itemValue="#{lista.idUnidade}" />
					</h:selectOneMenu>

					<h:outputLabel id="lblTipoUsuario" value="Tipo Usuário:"
						styleClass="lbCampos" for="cboTipoUsuario" />
					<h:selectOneMenu value="#{FuncionarioBean.tipoUsuario}"
						id="cboTipoUsuario">
						<f:selectItem itemValue="Todos" itemLabel="Todos" />
						<f:selectItem itemValue="A" itemLabel="Administrador" />
						<f:selectItem itemValue="D" itemLabel="Diretor" />
						<f:selectItem itemValue="G" itemLabel="Gerente de Divisao" />
						<f:selectItem itemValue="F" itemLabel="Funcionario" />
						<f:selectItem itemValue="E" itemLabel="Estagiario" />
					</h:selectOneMenu>

					<h:outputLabel value="Nome:" for="txtUsuario"></h:outputLabel>
					<h:inputText id="txtUsuario"
						value="#{FuncionarioBean.funcionario2.nmFuncionario}" />

					<h:outputLabel id="olUsuario" value="Usuário:" />
					<h:inputText id="login"
						value="#{FuncionarioBean.funcionario2.usuario.nmLogin}" />


					<h:outputLabel value="CPF:" for="txtCPF"></h:outputLabel>
					<h:inputText id="txtCPF"
						value="#{FuncionarioBean.funcionario2.nrCpf}" />


					<p:commandButton id="cbBuscar"
						actionListener="#{FuncionarioBean.buscaFuncionarios}"
						image="ui-icon-search" update="formBusca tbbuscaFuncionarios msg" >
					
						<f:param id="idUnidade" value="#{FuncionarioBean.funcionario2.estruturaOrganizacional.idUnidade}"/>
					
					</p:commandButton>

					<h:outputLabel></h:outputLabel>
					<p:commandButton id="cbNovoUsuario" value="Novo Usuário"
						action="#{FuncionarioBean.redirectCadastroNovoFuncionario}"/>

					<p:commandButton id="cbLimpar" type="reset"
						action="#{FuncionarioBean.limparCamposControleUsuario}"
						update="formBusca tbbuscaFuncionarios" image="ui-icon-clean" />
				</h:panelGrid>
				
				<p:dataTable id="tbbuscaFuncionarios" var="f"
							 value="#{FuncionarioBean.funcionarios}" 
						     selection="#{FuncionarioBean.funcionario}" selectionMode="single"
						     onRowSelectComplete="FunDialog.show()" onRowSelectUpdate="display"
						     scrollable="true" height="205">

					<f:facet name="header">  
          				  Lista de Usuários	
           			</f:facet>

					<p:column style="width:300px">
						<f:facet name="header">
							<h:outputText value="Nome" />
						</f:facet>
						<h:outputText value="#{f.nmFuncionario}" style="width:300px" />
					</p:column>


					<p:column style="width:100px">
						<f:facet name="header">
							<h:outputText value="Usuário" />
						</f:facet>
						<h:outputText value="#{f.usuario.nmLogin}" style="width:100px" />
					</p:column>

					<p:column style="width:300px">
						<f:facet name="header">
							<h:outputText value="Email" />
						</f:facet>
						<h:outputText value="#{f.nmEmail}" style="width:300px" />
					</p:column>

					<p:column style="width:100px">
						<f:facet name="header">
							<h:outputText value="Telefone" />
						</f:facet>
						<h:outputText value="#{f.nmFone}" style="width:100px" />
					</p:column>


					<p:column style="width:115px">
						<f:facet name="header">
							<h:outputText value="Opções" />
						</f:facet>
					
					   	<c:if test="${f.usuario.tpStatus eq '&#65;'}">
					   	    <p:commandButton id="btEdit" image="ui-icon-tag"
						       action="#{FuncionarioBean.redirectAtualizaFuncionario(f)}"
							   update="tbbuscaFuncionarios" />
	   						${f.usuario.tpStatus}
							<p:commandButton id="btDesativa" update="tbbuscaFuncionarios" 
								action="#{UsuarioBean.doModificaStatus(f)}"
								image="ui-icon-trash"/>
						</c:if>
						<c:if test="${f.usuario.tpStatus eq '&#68;'}">
							  ${f.usuario.tpStatus}						
							  <p:commandButton id="btAtiva" update="tbbuscaFuncionarios" 
								action="#{UsuarioBean.doModificaStatus(f)}"
								image="ui-icon-disk"/>
						</c:if>
					</p:column>

				</p:dataTable>

				<p:dialog header="Detalhes Funcionário" widgetVar="FunDialog"
					resizable="false" width="400" showEffect="explode"
					hideEffect="explode">

					<h:panelGrid id="display" columns="2" cellpadding="4">

						<h:outputText value="Nome:" />
						<h:outputText value="#{FuncionarioBean.funcionario.nmFuncionario}" />

						<h:outputText value="Usuário:" />
						<h:outputText value="#{FuncionarioBean.funcionario.usuario.nmLogin}" />

						<h:outputText value="Email:" />
						<h:outputText value="#{FuncionarioBean.funcionario.nmEmail}" />

						<h:outputText value="Crachá:" />
						<h:outputText value="#{FuncionarioBean.funcionario.idCracha}" />

						<h:outputText value="Telefone:" />
						<h:outputText value="#{FuncionarioBean.funcionario.nmFone}" />

						<h:outputText value="Matricula:" />
						<h:outputText value="#{FuncionarioBean.funcionario.nmMatFuncionario}" />

						<h:outputText value="CPF:" />
						<h:outputText value="#{FuncionarioBean.funcionario.nrCpf}" />

					</h:panelGrid>
				</p:dialog>

			</p:fieldset>
		</h:form>
	</div>
</h:body>
</html>

Para esse caso implementado acima aparecem todos os botões errôneamente.

O trecho específico do código acima segue abaixo:

<p:column style="width:115px">  
                         <f:facet name="header">  
                             <h:outputText value="Opções" />  
                         </f:facet>  
                       
                         <c:if test="${f.usuario.tpStatus eq 'A'}">  
                             <p:commandButton id="btEdit" image="ui-icon-tag"  
                                action="#{FuncionarioBean.redirectAtualizaFuncionario(f)}"  
                                update="tbbuscaFuncionarios" />  
                             ${f.usuario.tpStatus}  
                             <p:commandButton id="btDesativa" update="tbbuscaFuncionarios"   
                                 action="#{UsuarioBean.doModificaStatus(f)}"  
                                 image="ui-icon-trash"/>  
                         </c:if>  
                         <c:if test="${f.usuario.tpStatus eq 'D'}">  
                               ${f.usuario.tpStatus}                       
                               <p:commandButton id="btAtiva" update="tbbuscaFuncionarios"   
                                 action="#{UsuarioBean.doModificaStatus(f)}"  
                                 image="ui-icon-disk"/>  
                         </c:if>  
                     </p:column>

Obrigado pela atenção!

1 Resposta

K

Foi muito fácil resolver, é só colocar a condição no atributo render do commandButton:

<p:column style="width:115px">
						<f:facet name="header">
							<h:outputText value="Opções" />
						</f:facet>
				   	    <p:commandButton id="btEdit" 
				   	                     image="ui-icon-tag"
					                     action="#{FuncionarioBean.redirectAtualizaFuncionario(f)}"
						                 update="tbbuscaFuncionarios" 
						                 rendered="#{f.usuario.tpStatus == 'A'}"/>
						<p:commandButton id="btDesativa" 
						                 update="tbbuscaFuncionarios" 
							             action="#{UsuarioBean.doModificaStatus(f)}"
							             image="ui-icon-trash" 
							             rendered="#{f.usuario.tpStatus == 'A'}"/>
						<p:commandButton id="btAtiva" 
										 update="tbbuscaFuncionarios" 
							             action="#{UsuarioBean.doModificaStatus(f)}"
							             image="ui-icon-disk" 
							             rendered="#{f.usuario.tpStatus == 'D'}"/>
					</p:column>
Criado 13 de setembro de 2011
Ultima resposta 14 de set. de 2011
Respostas 1
Participantes 1