JSF 2 + Primefaces + Chrome = Problema

16 respostas
fantacone

Olá Amigos,

Estou em uma aplicação JSF2 que utiliza o Primefaces. No entanto um problema já está dando dor de cabeça…rs

Vejam o exemplo abaixo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:f="http://java.sun.com/jsf/core"  
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.prime.com.tr/ui">

<h:head>
	<title> Titulo </title>
</h:head>

<h:body>

	<f:view contentType="text/html">
	<p:menubar>  
	
		<p:submenu label="Menu 1" >  
				<p:menuitem  value="aa" url="#" />
		</p:submenu>

		<p:submenu label="Menu 2" >  
				<p:menuitem value="Nome Maior que o Menu"  url="#"  />
		</p:submenu>
		
		
	</p:menubar>
	
	<br/>
	
		<p:password minLength="6" goodLabel="good" weakLabel="weak" promptLabel="label default" strongLabel="strong" />
	</f:view>
</h:body>

</html>

É um exemplo simples, no entanto o problema é que para usar o p:password no Chrome é necessário a inclusão da Tag f:view, pois caso esta não seja colocada os javascripts ficam comentados. Isto acontece em todos os navegadores WebKit…

Só que quando se coloca a tag f:view o menu as vezes não renderiza corretamente…

O menu e os sub-menus são listas, quando um item de menu filho é menor que o pai, as vezes o item pai é renderizado com o mesmo tamanho do filho, o que gera uma visualização diferente da padrão.

As dúvidas são as seguintes:

Por quê as tags do primefaces necessitam do f:view para não ficarem com o javascript comentado no Chrome?

Por quê quando utilizo a tag f:view o menu passa a não renderizar corretamente?

Abraços,

Obrigado

16 Respostas

caarlos0

então, também estou enfrentando uns problemas com esse maldito chrome, porém, com JSF1.2 + richfaces + chrome.

e o problema é um pouquinho pior, creio eu…

então, não sei como funciona o primefaces, mas to começando a desconfiar que isso é algum bug ou do webkit em si, ou do jsf, ou alguma coisa em comum em ambos…

só por curiosidade, tá usando tomcat?

fantacone

Olá Carlos,

Respondí o seu post… dá uma olhada e vê se funciona…

Aqui estou utilizando o Jboss…

Valew…

Galera… por favor se souberem de algo… help me…

Obs.: O Primefaces está me parecendo um tanto quanto aqueles kit de avião para montar, ou é do jeito que está desenhado, ou ninguém brinca… espero estar enganado…

Abraços

caarlos0

então cara, fiz aquilo que você falou… mas não deu…

pedi do server, porque vi muita gente com problemas de JSF + Chrome, e a maioria usava o Tomcat…

até tentei rodar minha app com glassfish e jboss as, mas não consegui, ia ter de mudar muita coisa, então desisti… (os clientes também não vão querer mudar mesmo…)

resumo da história: tamo num mato sem cachorro…

f2pro

cara… acho que resolvi teu problema
eu só adicionei um estilo css
tente colocar sabe… o css nas tags head… como fazer isso veja neste link http://vimeo.com/14254603

mas segue abaixo o codigo

<?xml version='1.0' encoding='UTF-8' ?>
<!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:p="http://primefaces.prime.com.tr/ui"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Facelet Title</title>
        <link type="text/css" rel="stylesheet" href="skin.css"/>
    </h:head>

    <h:body>

        <f:view contentType="text/html">
            <p:menubar>

                <p:submenu label="Menu 1" >
                    <p:menuitem value="aa" url="#" />
                </p:submenu>

                <p:submenu label="Menu 2" >
                    <p:menuitem value="Nome Maior que o Menu" url="#" />
                </p:submenu>


            </p:menubar>

            <br/>

            <p:password minLength="6" goodLabel="good" weakLabel="weak" promptLabel="label default" strongLabel="strong" />
        </f:view>
    </h:body>

</html>

[]'s

fantacone

Olá F2Pró…

Obrigado pela atenção… fiz o teste e o problema persiste…
No código que eu colei para visualização talvez fui um pouco infeliz, pq sempre quem tem o problema empurra o item seguinte e quando fui montar o exemplo de teste deixei o maior já por último, daí para pegar o erro é impossível… desculpe galera…

Corrigí o fonte abaixo onde aumentei o nome dos filhos dos menus…

Lembrando, esse erro ocorre apenas no Chrome e é intermitente, as vezes necessita de “f5” para visualizar…

Mais uma vez obrigado galera… mas ainda não conseguimos…

&lt;html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:f="http://java.sun.com/jsf/core"  
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.prime.com.tr/ui"&gt;

&lt;h:head&gt;
	&lt;title&gt; Titulo &lt;/title&gt;
&lt;/h:head&gt;

&lt;h:body&gt;

	&lt;f:view contentType="text/html"&gt;
	&lt;p:menubar&gt;  
	
		&lt;p:submenu label="Menu 1" &gt;  
				&lt;p:menuitem  value="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" url="#" /&gt;
		&lt;/p:submenu&gt;

		&lt;p:submenu label="Menu 2" &gt;  
				&lt;p:menuitem value="Nome Maior que o Menu"  url="#"  /&gt;
		&lt;/p:submenu&gt;
		
		
	&lt;/p:menubar&gt;
	
	<br/>
	
		&lt;p:password minLength="6" goodLabel="good" weakLabel="weak" promptLabel="label default" strongLabel="strong" /&gt;
	&lt;/f:view&gt;
&lt;/h:body&gt;

&lt;/html&gt;
aluisiodsv

JSF 2 não utiliza mais a tag f:view

O q o primefaces para o JSF 2 necessita é do
<h:head>
</h:head>

talvez ajude.

fantacone

Olá Aluisio e amigos…

Realmente não é necessário utilizar a tag f:view para o IE nem o Firefox… mas componentes como o p:password não funcionam no chrome e demais navegadores WebKit, porquê estes navegadores deixam comentados os javascripst que seriam responsáveis pela exibição da caixa de diálogo da força da senha por exemplo…

veja o fonte no Chrome logo abaixo e repaer como fica comentado…:

<input id="j_idt11" name="j_idt11" type="password" value="" /><script type="text/javascript"> 
//<![CDATA[
jQuery(function(){widget_j_idt11 = new PrimeFaces.widget.Password('j_idt11', {length:6,promptLabel:'label default',weakLabel:'weak',goodLabel:'good',strongLabel:'strong'});});
//]]>
</script>

No entanto no Firefox fica como javascript normal… veja:

<input id="j_idt11" name="j_idt11" type="password" value="" /><script type="text/javascript">
jQuery(function(){widget_j_idt11 = new PrimeFaces.widget.Password('j_idt11', {length:6,promptLabel:'label default',weakLabel:'weak',goodLabel:'good',strongLabel:'strong'});});
</script>

Continuamos na luta pessoas… valew por enquanto !!!

f2pro

aluisiodsv:
JSF 2 não utiliza mais a tag f:view

O q o primefaces para o JSF 2 necessita é do
<h:head>
</h:head>

talvez ajude.

hoje mesmo me recomendaram no forum do primefaces a usar o f:view sendo que eu uso dessa forma <f:view contentType=“text/html”>
até podem ver hoje fiz uma pergunta semelhante a esta aqui no forum onde eu mesmo respondi assim que recebi a resposta do outro forum
para mim está rodando certo o teu codigo nao sei o que possa estar o correndo
se descobrir te aviso ok…
[]'s

f2pro

poderia ser a versão do teu primefaces?
qual esta usando?
eu tinha problemas com o 2.2RC2 onde mudei para a 2.1

fantacone

Fala F2 e demais amigos…

Primeiramente obrigado pela velocidade nas respostas e atenção gasta… Obrigadão !!!

Quanto ao <f:view contentType=“text/html”/> realmente quando utilizo ele o componente renderiza perfeitamente, mas conforme as atualizações da página o menu fica meio doido, com tamanho diferente do esperado… E isso só ocorre no Chrome e mesmo assim intermitente, ou seja, as vezes preciso atualizar a página uma ou duas vezes seguidas para o menu renderizar errado, e o mais curioso de tudo, só de passar o mouse sobre os itens do menu, ele vai acertando os itens…

Vai entender né…

Valew e seguimos na busca… hehehehe

f2pro
cara... a tempos atras eu tava construindo um site e esqueci de colocar essas tags
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

onde ele não interpretava direito..
tente colocar..

fantacone

Olá F2… valew pelas dicas… estava testando…

Com o Jar antigo impressionantemente não funcionou nada… irei fazer mais uns testes…

Quanto as duas linhas… não funcionou mesmo…

Abraços…

E vamo q vamo…hehehehe

f2pro

muito estranho…
te aconselho se cadastrar no forum do primefaces

primefaces.prime.com.tr/forum/

é em ingles e o numero de usuarios é baixo mas já tive questões respondidas…
[]'s

fantacone

Fala Galera…

Apenas para compartilhar meu sentimento de tristeza…huauhauhauh

Brincadeira… O pessoal do fórum do prime não tá indo muito bem…

Continuo na busca… Abraços…

Se puderem help-me…

fantacone

Fala PessoAll,

Estou em contato contínuo com o pessoal do fórum do primefaces… O moderador tentou passar algumas soluções, mas por fim acabou abrindo uma ocorrência para correção do bug…

Você podem conferir o histórico da conversa em:
http://primefaces.prime.com.tr/forum/viewtopic.php?f=3&t=7142

Acho bacana darem uma olhada, pois eles sujerem algumas correções que talvez possam ajudar vocês…

Grande Abraço,

E continuamos na pesquisa…

toninhocell

fantacone Estou utilizando uma <p:dataTable /> (Prime Faces 2.2.1) no sistema que estou desenvolvendo, no FireFox ela opera perfeitamente, no entanto, no Chrome praticamente todas as funcionalidades estão ok, exceto o recurso de onRowSelectComplete=“myDialog.show(), no Chrome não funcionava, ao colocar a tag <f:view contentType=“text/html”> problema resolvido. Esperto não ter problemas com outros componentes ou menus, pq pelo que vi nos posts aqui ela ta meio duvidosa hehehe. Um abraço e obrigado por compartilhar! :smiley:

Criado 13 de janeiro de 2011
Ultima resposta 23 de jul. de 2011
Respostas 16
Participantes 5