Jsf 1.1 vs jsf 1.2

qual seria as melhorias do jsf 1.2?? quais as diferencas entre eles?? existe muitas???

só a ausência de vários bugs existentes da RI do JSF 1.1 já é muito bom!!! Unificação da EL do JSF com a do JSP ( + JSTL) sairam algumas classes em detrimento de outras, etc…

Isso já ajudou bastante!!!

pode até ser, mas a versão do jsf 1.2 me deu bastante dor de cabeça com várias coisas, principalmente aquelas mensagens de validação, é uma tristeza

Como assim? Leozin?

Também tive problemas com mensagens. Resolvi usando a biblioteca do RichFaces rich:message

Quais problemas com mensagens vcs tiveram ?

Estou tendo problemas com essas mensagens de validação… Poderiam me dizer como solucionaram o problema ?

[]'s Luís César

bom, vou reltar os problemas que tive que achei um tanto quanto chatos

um problema sério do JSF 1.2 é no que se diz respeito aos labels

por exemplo, digamos que você crie um label

<h:outputLabel for="txtNome" value="Nome do Produto" /> <h:inputText id="txtNome" required="true" /> <h:messages />

O que acontece quando você submete o form sem estar preenchido?
1- a mensagem vem num formato “bem chato”. Se não me engano, o replaceIdWithLabel nem funciona direito
2- Outra é que SEMPRE aparece o nome do form na frente, SEMPRE
3- label pra que?
4- a unica forma de corrigir isso é fazendo o seguinte:

<h:inputText  id="txtNome" required="true" [b]label="Nome do Produto"[/b]/>

No JSF 1.1 não tem nenhum problema desses, e o melhor, quando você usa o tomahawk funciona legal :slight_smile:

outra coisa que também não gostei é os ids que ele gera no html quando você não especifica no faces

por exemplo, um form qualquer aqui gerado pelo jsf 1.2

<form id="j_id_jsp_2103094044_3" name=""j_id_jsp_2103094044_3">...</form>

e no jsf 1.1

<form id="_id0" name="_id0">...</form>

Qual o problema nisso?

Digamos que dá uma exception, você errou um EL da vida. A mensagem de erro no jsf 1.2 vai ser pra dar risada, do tipo

Continuando
O tal do JSTL unificado, sinceramente, é um mito. Sem contar que no faces você nem precisa usar jstl :slight_smile: JSTL ajuda o pessoal do faces que está iniciando só, que veio de outros frameworks que usam o jstl

Com ajax4jsf
Se você cria um botão, h:commandButton e quer fazer com que ele seja ajax-enabled, adivinha? NÃO É POSSÍVEL
A única forma de isso acontecer é se você colocar um botão do myfaces, o t:commandButton
-> Como criar um botão ajaxenabled
Como todos sabem, um botão de um formulário HTML geralmente, ou é um reset ou é um submit. Quando isso vem do Faces, é a mesma idéia. Mas quando queremos deixá-lo ajax-enabled, ele não deve ser um botão de submit (porque não queremos enviar o fomulário inteiro e dar um refresh na página) e nem um botão de reset (porque não queremos limpar os campos do formulário). O que fazer? colocar o type dele como “button”. Dessa forma, o botão não faz nada. Aí você poderia colocar um “onclick” e chamar por ajax.
Mas não sei porque diabos MESMO colocando a propriedade type=“button” ele faz um submit. E o pior: Ele faz o submit e a tua chamada ajax, exemplificando melhor em códigos:

<h:commandButton type="button" value="Validar!"> <a4j:support event="onclick" actionListener="#{meuBean.validarProduto}" /> </h:commandButton>

No JSF 1.2, ele faz submit (o que não deveria ser feito), no JSF 1.1, ele funciona perfeitamente como deveria funcional, tal como o código abaixo

<t:commandButton type="button" value="Validar!"> <a4j:support event="onclick" actionListener="#{meuBean.validarProduto}" /> </t:commandButton>

Mas há algumas vantagens no JSF 1.2, por exemplo, não há necessidade de ficar fazendo <f:verbatim>
E as outras vantagens é que… ahm… bom… sei lá

Eu comecei a usar o JSF 1.2 faz uns 4 meses… Sempre usei MyFaces (por mais de 1 ano), agora é RI 1.2 + tomahawk e, tirando esses problemas, ou seja, essas diferenças que notei, o resto tá legal :slight_smile: Isso tudo é “contornável” hehehe

Fala Leozin.

Quanto aos labels, não acho esta implementação ruim.

Fazer isto

&lt;h:inputText  id="txtNome" required="true" label="Nome do Produto"/&gt; 

é bem mais simples do que &lt;h:outputLabel for="txtNome" value="Nome do Produto" /&gt; &lt;h:inputText id="txtNome" required="true" /&gt;
Certo? :slight_smile:

Quanto aos ids, tbm acho que é um porcaria o jeito que ele gera, mas como dizem as boas práticas, sempre devemos definir estes ids manualmente.

O JSTL praticamente não usei com JSF, então não estou muito fluente nesta integração. :roll:

AJAX… esse é chatinho.
No mundo perfeito, a integração do Ajax4JSF é ótima, mas quando vc começa a ter rotinas mais complicadas, acaba precisando dar muitas voltar pra fazer um coisa “simples”.

Acho que MUITA coisa do MyFaces ajuda o desenvolvedor. Me parece que algumas coisas que são óbvias só são simples de se implementar com o Tomahawk.
Por exemplo:
t:dataTable - Possui sort e algumas outras funções agregadas como a paginação.
t:saveState - Salva a vida junto com ajax4jsf :stuck_out_tongue:

Apesar de tudo, gostou muito e ainda é meu framework preferido, mas como disse, me parece que algumas coisas obvias não são tão óbvias para os desenvolvedores da especificação. :!:

mas cara, esse esquema do label… hmmm na verdade ficou legal, mas mesmo assim sei lá

se analisarmos realmente é melhor, porque evita com que haja vários labels pra um componente só :slight_smile:

mas eh q assim, o problema que eu digo é esse do label, que nas mensagens ele aparece sempre com o nome do form na frente, SEMPRE! a única forma sabe qual é? É fazer um <t:inputText forceId="true" /> daí funciona :slight_smile:

Sem sombra de dúvidas, pra mim também é o framework mais legal, é o meu preferido em tudo… produção, facilidade e afins, não tem comparação!!!11

tanto é que se você ver os meus posts, pode perceber que eu geralmente só respondo questões de JSF, porque é o framework que eu trabalho a mais de 1 ano e meio e me considero um quase-especialista, gosto mesmo dele e acho que tem tudo pra dar certo

ainda vejo muitos problemas nele, mas no geral pra mim é o melhor. Tomahawk é a salvação de MUITAS coisas no JSF, muitas coisas que ficaram faltando o JSF implementou, e o a4j com o rich faces é o melhor complemento do faces

longa vida ao jsf ;D

Ps.: não quero dizer que eu odeio struts, menta, vraptor, struts 2 ou webwork. O JSF é o meu preferido, mas eu gosto do desafio que qualquer outro framework me proporciona
Ps2.: mas uma coisa que nunca abro mão é do meu parceirão, o Spring rsrs até em aplicações desktop ele tá lá me ajudando ;D