[RESOLVIDO]Rerenderer Richfaces - erro estranho

3 respostas
felipe.sodre

Boa tarde pessoal to relembrando JSF aqui to tentando renderizar dinamicamente um panel de forma bem simples mas ta dando erro.

Segue o código.

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>SM2 - SOLUÇÃO MÓVEL DE MANUTENÇÃO - WEB</title>
<link rel="StyleSheet" type="text/css"
	href="${pageContext.request.contextPath}/style.css" />
</head>
<body>
<ui:composition 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:rich="http://richfaces.org/rich"
	xmlns:a4j="http://richfaces.org/a4j">
	<a4j:loadScript src="resource://pesquisas/rowSelect.js" />
	<f:view>
		<a4j:form id="principal">

			<rich:modalPanel id="panelOS" width="800" height="600"
				autosized="false">

				<f:facet name="header">
					<h:panelGroup>
						<h:outputText value="#{msg.pesquisaWorkOrder}" />
					</h:panelGroup>
				</f:facet>
				<f:facet name="controls">
					<h:panelGroup>
						<h:graphicImage value="/images/close.png" id="hidelink"
							title="#{msg.parametersSelecao}" />
						<rich:componentControl for="panelOS" attachTo="hidelink"
							operation="hide" event="onclick" />
					</h:panelGroup>
				</f:facet>




				<a4j:outputPanel id="Panel1">
					<h:outputText value="teste" />
					<a4j:commandButton value="teste" reRender="aPanel2"
						action="#{testeMB.teste}">
						<a4j:support ajaxsingle="true" event="oncomplete"
							rerender="Panel2"></a4j:support>
					</a4j:commandButton>
				</a4j:outputPanel>

				<rich:spacer width="100%" height="20" style="color:blue"></rich:spacer>

				<a4j:outputPanel id="aPanel2" rendered="#{testeMB.render}">
					<h:panelGroup id="Panel2">
						<h:outputText value="#{testeMB.mensagem}" />
						<a4j:commandButton value="teste2" />
					</h:panelGroup>
				</a4j:outputPanel>

			</rich:modalPanel>

		</a4j:form>
	</f:view>
</ui:composition>
</body>
</html>
package br.com.sigga.test;

public class TesteMB {
	
private String mensagem = null;  
private boolean render;


public boolean isRender() {
	return render;
}

public void setRender(boolean render) {
	this.render = render;
}

public void teste() {  
	render = true;
    setMensagem("Funcionou!!");  
}  

/** 
 * @return the mensagem 
 */  
public String getMensagem() {  
    return mensagem;  
}  

/** 
 * @param teste the mensagem to set 
 */  
public void setMensagem(String mensagem) {  
    this.mensagem = mensagem;  
}  
}

o botão simplesmente não renderiza a tela.

3 Respostas

felipe.sodre

Alguém ?

ViniGodoy

Por favor, ao postar tópicos, NÃO POSTE OS TÍTULOS USANDO APENAS LETRAS MAIÚSCULAS.

felipe.sodre

Segue a solução:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>SM2 - SOLUÇÃO MÓVEL DE MANUTENÇÃO - WEB</title>
<link rel="StyleSheet" type="text/css"
	href="${pageContext.request.contextPath}/style.css" />
</head>
<body>
<ui:composition 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:rich="http://richfaces.org/rich"
	xmlns:a4j="http://richfaces.org/a4j">
	<a4j:loadScript src="resource://pesquisas/rowSelect.js" />
	<f:view>
		<rich:modalPanel id="modalUsuario" autosized="true">
		<f:facet name="header">
			<h:panelGroup>
				<h:outputText value="#{msg.cadUsuario}"></h:outputText>
			</h:panelGroup>
		</f:facet>
		<f:facet name="controls">
			<h:panelGroup>
				<h:graphicImage value="/images/close.png" id="hidelink"
					title="Close" />
				<rich:componentControl for="modalUsuario" attachTo="hidelink"
					operation="hide" event="onclick" />
			</h:panelGroup>
		</f:facet>
		<h:form id="principal">

			<a4j:outputPanel id="Panel1">
				<h:outputText value="teste" />
				<a4j:commandButton value="teste" reRender="txtValue, aPanel2"
					action="#{testeMB.teste}" ajaxSingle="true">
				</a4j:commandButton>
			</a4j:outputPanel>

			<rich:spacer width="100%" height="20" style="color:blue"></rich:spacer>

			<h:outputLabel value="#{testeMB.render}" id="txtValue"/>

			<a4j:outputPanel id="aPanel2">
				<h:panelGroup id="Panel2" rendered="#{testeMB.render}">
					<h:outputText value="#{testeMB.mensagem}"/>
					<a4j:commandButton value="teste2" />
				</h:panelGroup>
			</a4j:outputPanel>

		</h:form>
		</rich:modalPanel>
	</f:view>
</ui:composition>
</body>
</html>

me baseei no blog do Rafael Pontes muito bom!!!

http://www.rponte.com.br/2010/12/01/problema-do-rendered-dinamico-com-jsf/#comment-1001

Criado 24 de janeiro de 2012
Ultima resposta 25 de jan. de 2012
Respostas 3
Participantes 2