Página toda recarregando utilizando ajax

2 respostas
silver00

Pessoal, até onde eu sei, o primefaces por padrão, utiliza o ajax, e mesmo assim as minhas páginas estão carregando por completo, ao invés apenas dos componentes utilizados. Segue um exemplo de minhas páginas.

template.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
 
    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Certificado Digital</title>
        <style type="text/css">
            body {background-color: #8B8989; font-size: 12px}
        </style> 
    </h:head>
    <h:body>
        <div align="center">
            <p:layout style="min-width:1000px;max-width:1028px;min-height:680px">  <!-- Tamano geral da Página -->
	            <!-- Header -->
	            <ui:insert name="header" > 
			  		<ui:include src="/resources/template/header.xhtml" />
				</ui:insert>   
                <!-- Header -->
                
                <!-- Menu esquerdo -->
                <p:layoutUnit position="west" size="220">                  	
                    <ui:insert name="menu">
                        <h:form>
                            <p:menu style="width: 200px">
                                <p:submenu label="Menu">
                                 	<p:menuitem value="Home Page" icon="ui-icon-home" outcome="homePage" update="centro"/>
                                    <p:menuitem value="Login" icon="ui-icon-key" outcome="login" update="centro"/>
                                    <p:menuitem value="Fazer meu cadastro" icon="ui-icon-clipboard" outcome="cadastroProfile" update="centro"/> 
                                </p:submenu>
                            </p:menu>
                        </h:form>
                    </ui:insert>                   
                </p:layoutUnit> 
                <!-- Menu esquerdo --> 
                
                <!-- Centro da página --> 
                <p:layoutUnit position="center">  
                    <ui:insert name="centro">
                        O que estiver aqui será substituido!
                    </ui:insert>
                </p:layoutUnit> 
                <!-- Centro da página -->               
            </p:layout>  
        </div>
    </h:body>
</html>
login
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<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.org/ui"> 

<ui:decorate template="/resources/template/default.xhtml">
        <ui:define name="centro">
        	<p:panel>
	        	<form method="post" id="login" action="j_security_check">
				    <h:panelGrid columns="2">
				        <p:outputLabel for="j_username" value="Username" />
				        <p:inputText id="j_username" name="j_username" />            
				        <p:outputLabel for="j_password" value="Password" />
				        <p:password id="j_password" name="j_password"/>
				        
				        <input type="submit" id="submit" value="Login" />				        
				    </h:panelGrid>
				</form>
			</p:panel>
        </ui:define>
</ui:decorate>
</html>

2 Respostas

DaniloAndrade
silver00:
Pessoal, até onde eu sei, o primefaces por padrão, utiliza o ajax, e mesmo assim as minhas páginas estão carregando por completo, ao invés apenas dos componentes utilizados. Segue um exemplo de minhas páginas. template.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
 
    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Certificado Digital</title>
        <style type="text/css">
            body {background-color: #8B8989; font-size: 12px}
        </style> 
    </h:head>
    <h:body>
        <div align="center">
            <p:layout style="min-width:1000px;max-width:1028px;min-height:680px">  <!-- Tamano geral da Página -->
	            <!-- Header -->
	            <ui:insert name="header" > 
			  		<ui:include src="/resources/template/header.xhtml" />
				</ui:insert>   
                <!-- Header -->
                
                <!-- Menu esquerdo -->
                <p:layoutUnit position="west" size="220">                  	
                    <ui:insert name="menu">
                        <h:form>
                            <p:menu style="width: 200px">
                                <p:submenu label="Menu">
                                 	<p:menuitem value="Home Page" icon="ui-icon-home" outcome="homePage" update="centro"/>
                                    <p:menuitem value="Login" icon="ui-icon-key" outcome="login" update="centro"/>
                                    <p:menuitem value="Fazer meu cadastro" icon="ui-icon-clipboard" outcome="cadastroProfile" update="centro"/> 
                                </p:submenu>
                            </p:menu>
                        </h:form>
                    </ui:insert>                   
                </p:layoutUnit> 
                <!-- Menu esquerdo --> 
                
                <!-- Centro da página --> 
                <p:layoutUnit position="center">  
                    <ui:insert name="centro">
                        O que estiver aqui será substituido!
                    </ui:insert>
                </p:layoutUnit> 
                <!-- Centro da página -->               
            </p:layout>  
        </div>
    </h:body>
</html>
login
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<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.org/ui"> 

<ui:decorate template="/resources/template/default.xhtml">
        <ui:define name="centro">
        	<p:panel>
	        	<form method="post" id="login" action="j_security_check">
				    <h:panelGrid columns="2">
				        <p:outputLabel for="j_username" value="Username" />
				        <p:inputText id="j_username" name="j_username" />            
				        <p:outputLabel for="j_password" value="Password" />
				        <p:password id="j_password" name="j_password"/>
				        
				        <input type="submit" id="submit" value="Login" />			        
				    </h:panelGrid>
				</form>
			</p:panel>
        </ui:define>
</ui:decorate>
</html>
talvez seja por causa disso
<input type="submit" id="submit" value="Login" />

como vc esta usando o spring-security ou JAAS essa primeira tela tera que ser recarrega porque ela precisa se interceptada pelo JAAS ou Spring-security antes de chegar no servlet do jsf
isso é uma suposição :lol:

silver00
DaniloAndrade:
silver00:
Pessoal, até onde eu sei, o primefaces por padrão, utiliza o ajax, e mesmo assim as minhas páginas estão carregando por completo, ao invés apenas dos componentes utilizados. Segue um exemplo de minhas páginas. template.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">
 
    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Certificado Digital</title>
        <style type="text/css">
            body {background-color: #8B8989; font-size: 12px}
        </style> 
    </h:head>
    <h:body>
        <div align="center">
            <p:layout style="min-width:1000px;max-width:1028px;min-height:680px">  <!-- Tamano geral da Página -->
	            <!-- Header -->
	            <ui:insert name="header" > 
			  		<ui:include src="/resources/template/header.xhtml" />
				</ui:insert>   
                <!-- Header -->
                
                <!-- Menu esquerdo -->
                <p:layoutUnit position="west" size="220">                  	
                    <ui:insert name="menu">
                        <h:form>
                            <p:menu style="width: 200px">
                                <p:submenu label="Menu">
                                 	<p:menuitem value="Home Page" icon="ui-icon-home" outcome="homePage" update="centro"/>
                                    <p:menuitem value="Login" icon="ui-icon-key" outcome="login" update="centro"/>
                                    <p:menuitem value="Fazer meu cadastro" icon="ui-icon-clipboard" outcome="cadastroProfile" update="centro"/> 
                                </p:submenu>
                            </p:menu>
                        </h:form>
                    </ui:insert>                   
                </p:layoutUnit> 
                <!-- Menu esquerdo --> 
                
                <!-- Centro da página --> 
                <p:layoutUnit position="center">  
                    <ui:insert name="centro">
                        O que estiver aqui será substituido!
                    </ui:insert>
                </p:layoutUnit> 
                <!-- Centro da página -->               
            </p:layout>  
        </div>
    </h:body>
</html>
login
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<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.org/ui"> 

<ui:decorate template="/resources/template/default.xhtml">
        <ui:define name="centro">
        	<p:panel>
	        	<form method="post" id="login" action="j_security_check">
				    <h:panelGrid columns="2">
				        <p:outputLabel for="j_username" value="Username" />
				        <p:inputText id="j_username" name="j_username" />            
				        <p:outputLabel for="j_password" value="Password" />
				        <p:password id="j_password" name="j_password"/>
				        
				        <input type="submit" id="submit" value="Login" />			        
				    </h:panelGrid>
				</form>
			</p:panel>
        </ui:define>
</ui:decorate>
</html>
talvez seja por causa disso
<input type="submit" id="submit" value="Login" />

como vc esta usando o spring-security ou JAAS essa primeira tela tera que ser recarrega porque ela precisa se interceptada pelo JAAS ou Spring-security antes de chegar no servlet do jsf
isso é uma suposição :lol:

Como utilizo JAAS, em todas as páginas são passadas pelo filter e essa é somente uma tela de exemplo, todas as outras acontecem a mesma coisa, e mesmo assim, vc somente passa pelo JAAS quando esta logado e o problema ocorre em qualquer página, logado ou não.

Criado 2 de maio de 2013
Ultima resposta 2 de mai. de 2013
Respostas 2
Participantes 2