<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "JSF 2: Problema com required=true no h:inputText !"]]></title>
		<link>http://www.guj.com.br/posts/list/6.java</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "JSF 2: Problema com required=true no h:inputText !"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ Pessoal, boa tarde !<br /> <br /> Estou com um problema no "h:inputText" com atributo "required=true".<br /> Para entender minha pergunta no final, considere o seguinte exemplo:<br />   Obs.: Segue abaixo um link com um exemplo montado para testarem também, porém vou explicar:<br /> 	<br />   [url]http://www.mandamais.com.br/download/8beq2542011165533[/url]<br /> <br /> Ao executar o exemplo, irá abrir uma grid com duas colunas preenchidas da seguinte forma:<br /> [code]  <br /> JOÃO nome   | JOÃO sobreNome<br /> MARIA nome  | MARIA sobreNome<br /> [/code]<br /> [u][b]Agora siga os seguintes passos:[/b][/u]<br /> <br />   [b]*[/b]  Cliquei no "Editar" do nome JOÃO e repare que na próxima tela aparecerá assim:<br /> [code]<br /> Nome      : JOÃO nome;<br /> Sobrenome : JOÃO sobreNome;<br /> [/code]<br />   [b]*[/b]  Feito isso clique em voltar;<br />   [b]*[/b]  Cliquei no "Editar" do nome MARIA e repare que na próxima tela aparecerá assim:<br /> [code]<br /> Nome      : MARIA nome;<br /> Sobrenome : MARIA sobreNome;<br /> [/code]<br />   [b]*[/b]  Feito isso clique em voltar;<br />   [b]*[/b]  Depois cliquei novamente no "Editar" do nome JOÃO;<br />   [b]*[/b]  Na próxima tela apague input nome ("JOÃO nome") deixando em branco e clique em "Atualizar e Voltar". Observe que no input nome aparecerá uma mensagem de "Campo Obrigatório";<br />   [b]*[/b]  Clique no botão "Voltar";<br />   [b]*[/b]  Na grid clique no "Editar" do nome "MARIA nome";<br />   [b]*[/b]  Repare que na próxima tela aparecerá aparecerá da seguinte forma:<br /> [code]<br /> Nome      : MARIA nome;<br /> Sobrenome : JOÃO sobreNome;<br /> [/code]<br />   [b]*[/b]  Obs.: O correto era aparecer da seguinte forma:<br /> [code]<br /> Nome      : MARIA nome;<br /> Sobrenome : MARIA sobreNome;<br /> [/code]<br /> [color=blue][b]Minha pergunta é:[/b][/color] Porque isso acontece quando tenho um input que é requerido na tela ? <br /> O correto não era ignorar a execução do botão "Atualizar e Voltar" que quando clico em "Voltar" e quando "Editar" novamente entrar com os valores correspondentes ao objeto que selecionei ?<br /> <br /> [color=red][b]Obs.:[/b][/color] Não quero saber como contornar essa questão, isso eu já sei, quero saber por que ocorre isso neste caso.<br /> Isso é um comportamento correto do JSF ou não ?<br /> Eu estou fazendo algum procedimento errado ? Se sim, qual seria a forma correta neste caso ?<br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1237650/jsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1237650/jsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Mon, 25 Apr 2011 16:03:24]]> GMT</pubDate>
				<author><![CDATA[ nei.junior]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ Olá nei.junior,<br /> <br /> Antes de mais nada, esse problema não está relacionado somente a validação "required", mas sim qualquer erro na fase de validação (seja conversação ou validação).<br /> <br /> Vou tentar explicar de maneira simples, o problema e as possíveis soluções que eu conheço.<br /> <br /> Os componentes de inputs (todos que implementam EditableValueHolder) possuem 3 (três) tipos de valores que são alterados durante o ciclo de vida de uma requisição, eles são:<br /> [quote]1) Submitted Value<br /> 2) Local Value<br /> 3) Value Binding (aka model value)<br /> [/quote]<br /> Vamos entender agora como esses 3 valores mudam nos componentes durante o ciclo de vida:<br /> <br /> [quote]** Quando você submete um formulário todos os inputs da página são submetidos como String (parâmetros de request) e na APPLY REQUEST VALUES (2a fase) este valores são setados nos seus devidos componentes de inputs como "submitted value";<br /> <br /> ** Após isso, na fase de validação (3a fase), cada componente de input tenta converter e validar seu submitted value, em caso de sucesso o componente define seu novo valor convertido como "local value" e seta para null seu submitted value, continuando assim o ciclo de vida. Em caso de erro de conversão ou validação o componente não define seu "local value" e marca o componente como invalido, que por fim pula para última fase (RENDER RESPONSE);<br /> <br /> ** Se não houver erro na fase de validação o ciclo de vida continua na UPDATE MODEL VALUES para popular o modelo (managed bean etc), para cada componente de input setado no modelo o seu "local value" é setado para null e o ciclo termina na RENDER RESPONSE exibindo os valores do modelo (através das EL's);<br /> [/quote]<br /> O "problema" realmente ocorre na RENDER RESPONSE porque o componente pode retornar qualquer um dos 3 valores, contudo seguindo essa ordem de prioridade:<br /> <br /> [quote]** Se houver submitted value então retorne-o;<br /> ** Caso contrário, se o local value é não nulo então retorne-o;<br /> ** Caso contrário, avalie a EL, ou seja, chame o getter do modelo;<br /> [/quote]<br /> Entendendo essa prioridade acima você mata a charada do problema <img src="http://www.guj.com.br/images/smilies/3b63d1616c5dfcf29f8a7a031aaa7cad.gif" border="0"><br /> <br /> Esse problema ocorre muito comumente quando trabalhamos com [b]a mesma[/b] árvore de componentes, ou seja, quando utilizamos muito AJAX e/ou navegação orientada a estados. Quando utilizamos a navegação padrão do JSF dificilmente caímos nesse problema.<br /> <br /> Todas as soluções que conheço envolve limpar a árvore de componentes que está "suja":<br /> <br /> [quote]1) Navegação padrão do Faces para recriar toda a viewroot (não vale retornar null);<br /> 2) Limpar de [url="https://github.com/rponte/jsf-loja-project/blob/master/src/br/com/triadworks/loja/util/FacesUtils.java#L58"]maneira educada[/url] todos os componentes de inputs;<br /> 3)  Limpar os inputs de maneira "brute force" ([b]parentComponent.getChildren().clear()[/b] -  eles serão recriados na RENDER RESPONSE novamente, porém só funciona com JSF 1.x, pois o 2.x parece seguir corretamente a spec);<br /> [/quote]<br /> Eu acho que acabei falando de mais, isso daria até um post no blog, mas a preguiça nunca me deixou escrever, rss.<br /> <br /> No mais, segue alguns links para complementar o que eu disse,<br /> <a class="snap_shots" href="http://cagataycivici.wordpress.com/2005/12/28/jsf_component_s_value_local/" target="_blank" rel="nofollow">http://cagataycivici.wordpress.com/2005/12/28/jsf_component_s_value_local/</a><br /> <a class="snap_shots" href="http://ovaraksin.blogspot.com/2010/06/submitted-value-local-value-model-value.html" target="_blank" rel="nofollow">http://ovaraksin.blogspot.com/2010/06/submitted-value-local-value-model-value.html</a><br /> <a class="snap_shots" href="http://stackoverflow.com/questions/260094/jsf-getvalue-v-s-getsubmittedvalue" target="_blank" rel="nofollow">http://stackoverflow.com/questions/260094/jsf-getvalue-v-s-getsubmittedvalue</a><br /> <br /> Um abraço e espero que tenha ficado claro!<br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1237835/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1237835/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Mon, 25 Apr 2011 22:42:41]]> GMT</pubDate>
				<author><![CDATA[ rponte]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ Viveriamos melhor se todos nos conhecessemos tanto de JSF quanto o Ponte!]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1237850/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1237850/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Mon, 25 Apr 2011 23:19:23]]> GMT</pubDate>
				<author><![CDATA[ Paulo Silveira]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ Quando eu crescer quero ser igual ao Ponte e ao VinyGodoi! <img src="http://www.guj.com.br/images/smilies/283a16da79f3aa23fe1025c96295f04f.gif" border="0"> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1237852/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1237852/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Mon, 25 Apr 2011 23:23:43]]> GMT</pubDate>
				<author><![CDATA[ vinnysoft]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ [quote]** Após isso, na fase de validação (3a fase), cada componente de input tenta converter e validar seu submitted value, em caso de sucesso o componente define seu novo valor convertido como "local value" e seta para null seu submitted value, continuando assim o ciclo de vida. Em caso de erro de conversão ou validação o componente não define seu "local value" e marca o componente como invalido, que por fim pula para última fase (RENDER RESPONSE);<br /> <br /> ** Se não houver erro na fase de validação o ciclo de vida continua na UPDATE MODEL VALUES para popular o modelo (managed bean etc), para cada componente de input setado no modelo o seu "local value" é setado para null e o ciclo termina na RENDER RESPONSE exibindo os valores do modelo (através das EL's);<br /> [/quote]<br /> <br /> Só fazendo uma observação aqui Rafael, o local value é setado logo após o submitted value ser convertido (se existir um converter associado) e sequer atinge o estágio de validação pois se assim fosse o local value nunca serviria pra nada já que se a conversão foi correta e a validação também então o modelo já seria atualizado e o local value passaria para null correto?]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1237903/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1237903/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Tue, 26 Apr 2011 08:15:26]]> GMT</pubDate>
				<author><![CDATA[ danilo.magrini]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ Bom dia a todos !<br /> <br /> Rafael, primeiramente quero agradecer pela resposta, foi bastante esclarecedora. <br /> Fazendo alguns testes aqui com o @DaniloMagrini, achamos um procedimento um pouco estranho.<br /> Vou exemplificar o procedimento que fiz primeiramente para depois perguntar:<br /> <br />  [b]*[/b] No setCliente do "mbTesteRequired" e no método "editar" fiz o seguinte procedimento:<br /> [code]<br />     //Getters e Setters<br />     //...<br />     public void setCliente(Cliente cliente) {<br />         System.out.println("======= Setter =======");<br />         System.out.println("Nome      = " + cliente.getNome());<br />         System.out.println("SobreNome = " + cliente.getSobreNome());<br />         this.cliente = cliente;<br />     }<br /> <br />     //Métodos<br />     public String editar() {<br />         System.out.println("======= Método =======");<br />         System.out.println("Nome      = " + cliente.getNome());<br />         System.out.println("SobreNome = " + cliente.getSobreNome());<br />         this.setRenderizaCadastro(Boolean.TRUE);<br />         return null;<br />     }<br /> [/code]<br />  [b]*[/b] Levando em consideração o procedimento que ja expliquei acima, onde clico para editar o "JOÃO", deixo em branco o nome e clico em "Atualizar e voltar" para dar "Campo Obrigatório", depois clico no botão "Voltar", e por fim na grid clico em editar "MARIA" e la na tela de cadastro vem como:<br /> [code]<br /> Nome      : MARIA nome;  <br /> Sobrenome : JOÃO sobreNome; <br /> [/code]<br />  [b]*[/b] Quando pego o que imprimiu no "output" do netBeans esta assim:<br /> [code]<br /> INFO: ======= Setter =======<br /> INFO: Nome      = MARIA nome<br /> INFO: SobreNome = MARIA sobreNome<br /> <br /> INFO: ======= Método =======<br /> INFO: Nome      = MARIA nome<br /> INFO: SobreNome = MARIA sobreNome<br /> [/code]<br />  [b]*[/b] Agora no momento que cliquei no botão "Editar" do nome "MARIA" ele atualizou o modelo, significa que ele executou todos os outros processos corretamente, ou seja, o "Submitted Value" e o "Local Value" estão como "NULL".<br /> Agora porque que na tela continua errado ? Não era para vir certo ?<br /> <br /> Obrigado por enquanto !<br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1237941/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1237941/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Tue, 26 Apr 2011 08:58:49]]> GMT</pubDate>
				<author><![CDATA[ nei.junior]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ Oi Danilo,<br /> <br /> [quote=danilo.magrini]<br /> Só fazendo uma observação aqui Rafael, o local value é setado logo após o submitted value ser convertido (se existir um converter associado) e sequer atinge o estágio de validação pois se assim fosse o local value nunca serviria pra nada já que se a conversão foi correta e a validação também então o modelo já seria atualizado e o local value passaria para null correto?[/quote]<br /> <br /> Na verdade eu gostaria de garantir isso para você, mas já li artigos que afirmam que o local value é setado após a validação e outros dizem que é setado logo após a conversão, na qual a validação só cuidaria de invalidar o componente. Mas no geral, para nós "usuários" do framework que não criamos componentes não faz tanta diferença assim. No mais, o local value também é utilizado para eventos que ocorrem imediatamente após a conversão e validação dentro da própria fase de validação, como por exemplo valueChangeListener's.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1237967/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1237967/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Tue, 26 Apr 2011 09:35:55]]> GMT</pubDate>
				<author><![CDATA[ rponte]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ [quote=nei.junior]<br />  [b]*[/b] Agora no momento que cliquei no botão "Editar" do nome "MARIA" ele atualizou o modelo, significa que ele executou todos os outros processos corretamente, ou seja, o "Submitted Value" e o "Local Value" estão como "NULL".<br /> Agora porque que na tela continua errado ? Não era para vir certo ?<br /> <br /> Obrigado por enquanto !<br /> <br /> [/quote]<br /> <br /> Nei,<br /> <br /> Lembre-se que a árvore de componentes ficou "suja" após o erro de validação (mas especificamente os inputs do formulário), e o que você fez após clicar no botão "Voltar" foi apenas esconder o formulário (rendered=false). O formulário, independente de quantas requisições AJAX ocorram, ainda permanece "sujo" em memoria e seus componentes de inputs não são processados no ciclo de vida pois o componente [b]parent[/b] está rendered=false, por isso os valores internos não mudam (que já estavam "sujos" com o local value antigo, caindo naquela ordem de prioridade do valores: local value antes do model value).<br /> <br /> Não sei se ficou claro. Caso tenha ficado confuso é só falar que tento explicar melhor.<br /> <br /> Um abraço.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1237979/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1237979/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Tue, 26 Apr 2011 09:50:24]]> GMT</pubDate>
				<author><![CDATA[ rponte]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ [quote=rponte]<br /> Nei,<br /> <br /> Lembre-se que a árvore de componentes ficou "suja" após o erro de validação (mas especificamente os inputs do formulário), e o que você fez após clicar no botão "Voltar" foi apenas esconder o formulário (rendered=false). O formulário, independente de quantas requisições AJAX ocorram, ainda permanece "sujo" em memoria e seus componentes de inputs não são processados no ciclo de vida pois o componente [b]parent[/b] está rendered=false, por isso os valores internos não mudam (que já estavam "sujos" com o local value antigo, caindo naquela ordem de prioridade do valores: local value antes do model value).[/quote]<br /> Rafael,<br /> <br /> Entendi sim, porém essa questão do AJAX foi o que pensei por priemiro. Portanto nesse exemplo que criei, não sei se você baixou ai, mas se sim pode observar que eu NÃO utilizo AJAX, é tudo requisição normal para recarregar a página toda e mesmo assim continua errado.<br /> Como não é AJAX ele recarrega toda a página novamente, correto ? Com isso ele deveria reconstruir tudo novamente e vir correto, não é ?<br /> <br /> Obrigado por enquanto !<br /> <br /> Abraço.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1237989/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1237989/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Tue, 26 Apr 2011 10:04:07]]> GMT</pubDate>
				<author><![CDATA[ nei.junior]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ [quote=nei.junior]<br /> Rafael,<br /> <br /> Entendi sim, porém essa questão do AJAX foi o que pensei por priemiro. Portanto nesse exemplo que criei, não sei se você baixou ai, mas se sim pode observar que eu NÃO utilizo AJAX, é tudo requisição normal para recarregar a página toda e mesmo assim continua errado.<br /> Como não é AJAX ele recarrega toda a página novamente, correto ? Com isso ele deveria reconstruir tudo novamente e vir correto, não é ?<br /> <br /> Obrigado por enquanto !<br /> <br /> Abraço.[/quote]<br /> <br /> Nei,<br /> <br /> Eu havia baixado sim seu código. Quando comentei sobre o AJAX foi somente para reforçar, pois normalmente o problema ocorre quando utilizamos muito AJAX. Mas como eu havia dito, seja requisição comum ou AJAX, você continua trabalhando com a mesma árvore de componentes. No seu método editar() você retorna [b]null[/b] como regra de navegação, simbolizando para o faces [b]navegar para a mesma página, porém utilizando a mesma árvore de componentes[/b] em vez de recriar uma nova árvore.<br /> <br /> O problema real está na árvore de componentes "suja". Nas soluções que eu havia dado mais acima eu comentei sobre utilizar a navegação do faces, mas sem retornar null.<br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1237992/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1237992/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Tue, 26 Apr 2011 10:16:51]]> GMT</pubDate>
				<author><![CDATA[ rponte]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ [quote=rponte]<br /> Nei,<br /> <br /> Eu havia baixado sim seu código. Quando comentei sobre o AJAX foi somente para reforçar, pois normalmente o problema ocorre quando utilizamos muito AJAX. Mas como eu havia dito, seja requisição comum ou AJAX, você continua trabalhando com a mesma árvore de componentes. No seu método editar() você retorna [b]null[/b] como regra de navegação, simbolizando para o faces [b]navegar para a mesma página, porém utilizando a mesma árvore de componentes[/b] em vez de recriar uma nova árvore.<br /> <br /> O problema real está na árvore de componentes "suja". Nas soluções que eu havia dado mais acima eu comentei sobre utilizar a navegação do faces, mas sem retornar null.[/quote]<br /> <br /> Rafael,<br /> <br /> Bom concluindo o assunto, entendi. Você deu uma boa clareada neste caso. <br /> Agora vamos ver uma das soluções postada no inicio por você.<br /> O @DaniloMagrini deu uma ideia de propor na lista oficial do Mojarra a criação de algo como: <br /> [code]FacesContext.getCurrentInstance().getViewRoot().invalidate()[/code]<br /> <br /> O que acha ? Acho que quando cair nessa situação, pelo menos teria uma forma mais simples e objetiva de contornar.<br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1238008/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1238008/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Tue, 26 Apr 2011 10:36:24]]> GMT</pubDate>
				<author><![CDATA[ nei.junior]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ [quote=rponte]<br /> Na verdade eu gostaria de garantir isso para você, mas já li artigos que afirmam que o local value é setado após a validação e outros dizem que é setado logo após a conversão, na qual a validação só cuidaria de invalidar o componente. Mas no geral, para nós "usuários" do framework que não criamos componentes não faz tanta diferença assim. No mais, o local value também é utilizado para eventos que ocorrem imediatamente após a conversão e validação dentro da própria fase de validação, como por exemplo valueChangeListener's.[/quote]<br /> <br /> O ideal é procurar isso na especificação. Assim que eu tiver um tempo vou vasculhar entre as JSRs 314, 127 e 252 e ver se encontro algo. Porém se fosse para apostar eu apostaria que ele é setado depois da conversão porque pra mim setar o local value depois da validação se tornaria desnecessário uma vez que ele seria setado e logo em seguida receberia null já que o modelo seria atualizado.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1238010/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1238010/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Tue, 26 Apr 2011 10:38:41]]> GMT</pubDate>
				<author><![CDATA[ danilo.magrini]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ [quote=danilo.magrini]<br /> O ideal é procurar isso na especificação. Assim que eu tiver um tempo vou vasculhar entre as JSRs 314, 127 e 252 e ver se encontro algo. Porém se fosse para apostar eu apostaria que ele é setado depois da conversão porque pra mim setar o local value depois da validação se tornaria desnecessário uma vez que ele seria setado e logo em seguida receberia null já que o modelo seria atualizado.[/quote]<br /> <br /> Mas é como eu te disse, Danilo, após a validação, dentro da PROCESS VALIDATION, ainda podem ocorrer diversos eventos antes da atualização do modelo. Nesse curto intervalo o modelo precisa estar integro para que alguns eventos funcionem corretamente, como o valueChangeEvent, por exemplo.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1238014/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1238014/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Tue, 26 Apr 2011 10:45:32]]> GMT</pubDate>
				<author><![CDATA[ rponte]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ [quote=nei.junior]Rafael,<br /> <br /> Bom concluindo o assunto, entendi. Você deu uma boa clareada neste caso. <br /> Agora vamos ver uma das soluções postada no inicio por você.<br /> O @DaniloMagrini deu uma ideia de propor na lista oficial do Mojarra a criação de algo como: <br /> [code]FacesContext.getCurrentInstance().getViewRoot().invalidate()[/code]<br /> <br /> O que acha ? Acho que quando cair nessa situação, pelo menos teria uma forma mais simples e objetiva de contornar.<br /> <br /> [/quote]<br /> <br /> Nei,<br /> <br /> Antes de mais nada, é importante definir bem o que "invalidar" significa. Significa recriar toda a árvore de componentes? Limpar o estado interno de todos os inputs ou todos os componentes?<br /> <br /> O pessoal do Trinidad criou algo semelhante, mas acho que somente para inputs, não me recordo. Tanto que foi incorporado ao JSF 2.x. Se eu pesquisar talvez até ache o artigo. <br /> <br /> No mais, eu acredito que você não queira invalidar toda a árvore de componentes, mas sim alguns componentes ou grupo de componentes. Então utilizar navegação é a solução mais simples e o próprio faces já te fornecesse isso.<br /> <br /> Enfim, provavelmente há uma forte razão para o ciclo de vida e os componentes trabalharem assim! Se você souber de algo no forum não deixe de me informar.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1238020/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1238020/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Tue, 26 Apr 2011 10:55:27]]> GMT</pubDate>
				<author><![CDATA[ rponte]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ [quote=rponte]<br /> Nei,<br /> <br /> Antes de mais nada, é importante definir bem o que "invalidar" significa. Significa recriar toda a árvore de componentes? Limpar o estado interno de todos os inputs ou todos os componentes?<br /> <br /> O pessoal do Trinidad criou algo semelhante, mas acho que somente para inputs, não me recordo. Tanto que foi incorporado ao JSF 2.x. Se eu pesquisar talvez até ache o artigo. <br /> <br /> No mais, eu acredito que você não queira invalidar toda a árvore de componentes, mas sim alguns componentes ou grupo de componentes. Então utilizar navegação é a solução mais simples e o próprio faces já te fornecesse isso.<br /> <br /> Enfim, provavelmente há uma forte razão para o ciclo de vida e os componentes trabalharem assim! Se você souber de algo no forum não deixe de me informar.[/quote]<br /> Rafael, <br /> <br /> O invalidar seria limpar o estado interno de todos os inputs, praticamente o que você fez nessa [url=https://github.com/rponte/jsf-loja-project/blob/master/src/br/com/triadworks/loja/util/FacesUtils.java#L58]solução[/url].<br /> <br /> Quanto a navegação do faces, no caso desse exemplo se ao entrar na grid eu apertasse um botão filtrar e carregar a grid, ai quando entrasse na página de cadastro e voltasse ele perderia os dados da grid pois recriou toda a arvore novamente. Isso é um exemplo simples de como colocar a navegação do faces atrapalharia (de uma certa forma) se quero manter a grid sem ter que filtrar novamente.<br /> Portanto deixando o voltar como NULL ele não recria e não perde. Sendo assim, usando a sua solução ele funcionaria perfeitamente.<br /> <br /> Enfim, agora que ficou claro vamos elaborar a melhor forma de trabalhar para resolver isso.<br /> Quero agradecer pela atenção e pelas dúvidas esclarecidas e se eu souber de algo ou achar alguma outra solução, informo todos aqui.<br /> <br /> Muito obrigado<br /> <br /> Abraço !<br /> <br /> ]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1238033/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1238033/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Tue, 26 Apr 2011 11:19:27]]> GMT</pubDate>
				<author><![CDATA[ nei.junior]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ [quote=nei.junior]<br /> Enfim, agora que ficou claro vamos elaborar a melhor forma de trabalhar para resolver isso.<br /> [/quote]<br /> Normalmente eu limpo o formulário de maneira explicita antes de navegar para alguma página (exibir o formulário), algo como,<br /> <a class="snap_shots" href="https://github.com/rponte/jsf-loja-project/blob/master/src/br/com/triadworks/loja/controller/ProdutoBean.java#L46" target="_blank" rel="nofollow">https://github.com/rponte/jsf-loja-project/blob/master/src/br/com/triadworks/loja/controller/ProdutoBean.java#L46</a><br /> <br /> Enfim, é um reset forçado da árvore de componentes <img src="http://www.guj.com.br/images/smilies/3b63d1616c5dfcf29f8a7a031aaa7cad.gif" border="0"><br /> <br /> Um abraço.]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1238156/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1238156/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Tue, 26 Apr 2011 13:49:29]]> GMT</pubDate>
				<author><![CDATA[ rponte]]></author>
			</item>
			<item>
				<title>Re:JSF 2: Problema com required=true no h:inputText !</title>
				<description><![CDATA[ Só para constar: escrevi um post sobre o assunto,<br /> <a class="snap_shots" href="http://www.rponte.com.br/2011/06/07/limpando-a-arvore-de-componentes/" target="_blank" rel="nofollow">http://www.rponte.com.br/2011/06/07/limpando-a-arvore-de-componentes/</a><br /> <br /> <img src="http://www.guj.com.br/images/smilies/3b63d1616c5dfcf29f8a7a031aaa7cad.gif" border="0">]]></description>
				<guid isPermaLink="true">http://www.guj.com.br/prepost/239891/1262192/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</guid>
				<link>http://www.guj.com.br/prepost/239891/1262192/rejsf-2-problema-com-requiredtrue-no-hinputtext-
</link>
				<pubDate><![CDATA[Tue, 7 Jun 2011 12:20:33]]> GMT</pubDate>
				<author><![CDATA[ rponte]]></author>
			</item>
	</channel>
</rss>
