Primefaces e suas mensages

6 respostas
F

Bom dia pessoal, tudo Belezinha??

Entao seguinte, estou com um problema com o primefaces e suas mensagens

Em um formulario tenho p:messages e p:message e ainda por cima esse formulario esta em um p:dialog e fora desse p:dialog tem outro p:messages

Vamos exemplificar

<ui:composition template="/templates/content_template.xhtml">
	
		<ui:define name="content_page">
			<p:messages id="mensagemCrud" showDetail="true" autoUpdate="true" closable="true" />  
//Outros componentes 

<p:dialog id="modalDialogForm" header="#{recursos.titulo_editar}" widgetVar="formDialog"
				height="400" width="600">
				
				<p:messages id="mensagemDialogForm" showDetail="true" autoUpdate="true" closable="true" />  
			
			    <h:form id="formForm"  prependId="false">
			    <h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;">  
					<ui:insert name="form_fields_part">
					</ui:insert>
					</h:panelGrid>
					<p:commandButton id="btnSave" immediate="true"
						actionListener="#{controller.save}" value="#{recursos.salvar}"
						update=":gridForm:dataTable, display"  />
					<p:commandButton id="btnFechar" onclick="formDialog.hide();" value="#{recursos.fechar}" />
				</h:form>
			</p:dialog>
			
		</ui:define>
	</ui:composition>

Esse é meu template dentro de outro xhtml tenho o seguinte

<ui:define name="form_fields_part">
				<!--m:textfield label="#{recursos.nome_fantasia}" fieldId="nomeFantasiaForm" value="#{controller.empresa.nomeFantasia}" /-->
				<p:inputText id="nomeFantasiaForm" value="#{controller.empresa.nomeFantasia}" required="true"/>
				<p:message id="nomeFantasiaFormMessage" 
					 for="nomeFantasiaForm" display="icon" />  
</ui:define>
		
	</ui:composition>

Pois então, qnd eu executo no controller uma mensagem da seguinte maneira

FacesMessage facesMessage = new FacesMessage(severity, "", mensagem);
		FacesContext.getCurrentInstance().addMessage(clientId, facesMessage);

Onde clientId é nomeFantasiaForm, a minha mensagem aparece em todos os componentes, tem como apenas limitar ao componente que estou definindo?

6 Respostas

C

Não seria mais facil usar apenas um componente de mensagem ?

F

Seria, se minha tela fosse desenhada dessa maneira, mas como a tela necessita de varias, logo, preciso resolver

E

E se colocar no update o id da messagem que deseja atualizar?

B

tenta isso que o ErickRAR falou…
e tira os autoUpdate dos <p:messages

F

Ele aparece, só que aparece em todos, quero q apareca apenas em um deles

E tambem depois ele nao desaparece mais

A

Já tive esse mesmo problema e encontrei a solução nesse link:

vê se te ajuda…

Criado 30 de julho de 2012
Ultima resposta 30 de jul. de 2012
Respostas 6
Participantes 5