JSF 2 + Primefaces + Chrome = Problema

16 respostas
F

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

C

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?

F

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

C

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…

F

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

F

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;
A

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.

F

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 !!!

F

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

F

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

F

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

F
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..

F

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

F

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

F

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…

F

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…

T

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