Taglibs aprimoradas

Saudações colegas, preciso da ajuda de vocês pra não reinventar a roda.

Estou pesquisando mas ainda não achei outras taglibs além da Displaytag, que facilitam a vida de quem trabalha com JSP + TL. Certamente o JSTL é consagrado, mas sinto falta de outras tags, como aquelas existentes no JSF com toda aquela coleção, como exemplos:
[list]<h:form> [/list]
[list]<h:commandButton> [/list]
[list]<h:dataTable> [/list]
[list]<h:oneSelectMenu> e tantas outras, além do atributo rendered. [/list]

Gostei mto do vRaptor, pois ainda não conhecia, e gostaria de algo pra facilitar a parte do JSP. Como disse, ainda não achei outras taglibs. Alguem saberia me indicar alguma ou tenho que fazer manualmente?

A ideia seria imitar o JSF mesmo, fazendo tags como:
<xxx:inputText id="" rendered="" value=""/>
<xxx:inputPassword id="" rendered="" value=""/>
<xxx:selectMenu id="" rendered="" items="" selected=""/>
<xxx:radioGroup id="" rendered="" items="" selected=""/>

E assim por diante. Alguem já desenvolveu e pode disponibilizar?

Abraço a todos.

Acho isso o grande problema em relação ao JSF, na antiga empresa que eu estava fui criando aos poucos as taglibs e ficou bom. E essa semana achei essa relação de taglibs(http://java-source.net/open-source/jsp-tag-libraries)mas ai vc tem que testar cada uma. Tem tbm uma taglib chamada Waffer que o pessoal da caelum ajudou a criar.
Mas seria muito interessante uma taglib integrada ao vraptor usando o jQuery e plugins, parece que o mentawai tem taglib própria e tbm um tal framework Nexus eu acho que é nacional tbm tem taglibs inclusive com grids pra fazer mestreXdetalhe.

PS: Seria melhor postar isso na area de frameworks brasileiros(http://www.guj.com.br/forums/show/23.java) aonde ta o povo do Vraptor

[quote=pbnf]Acho isso o grande problema em relação ao JSF, na antiga empresa que eu estava fui criando aos poucos as taglibs e ficou bom. E essa semana achei essa relação de taglibs(http://java-source.net/open-source/jsp-tag-libraries)mas ai vc tem que testar cada uma. Tem tbm uma taglib chamada Waffer que o pessoal da caelum ajudou a criar.
Mas seria muito interessante uma taglib integrada ao vraptor usando o jQuery e plugins, parece que o mentawai tem taglib própria e tbm um tal framework Nexus eu acho que é nacional tbm tem taglibs inclusive com grids pra fazer mestreXdetalhe.

PS: Seria melhor postar isso na area de frameworks brasileiros(http://www.guj.com.br/forums/show/23.java) aonde ta o povo do Vraptor[/quote]

Muito obrigado pela atenção colega. Acabei de postar lá também. Vou passar um tempinho pesquisando essas taglibs. Muitas mesmo.

Gostei da ideia de integrar vRaptor e jQuery, mas foge um pouco da minha compreensão no momento, pois nao consegui visualizar muito bem.

Eu particularmente não gosto de JSF, mas não dá para negar que os componentes são muito bonitos. Na verdade o JSF em sí não faz nada daquelas perfumarias, pois tudo é delegado para os componentes da JQuery e JQuery-UI. A grande vantagem é que você como programador não precisa fazer nada disso, basta chamar um rich:tree e já tem um menu todo afrescalhado. Fazer isso manualmente é um saco.

Nos projetos com VRaptor tenho usado waffle, mas isso por falta de tempo de implementar algo, porque eu realmente não gosto dela. Além de não gerar XHTML válido, não gosto da forma dinamica dos atributos, fazendo você perder o code-assist do Eclipse.

Um usuário do VRaptor implementou algumas tags de fazem chamadas ao JQuery, assim ele consegue fazer algo semelhante ao JSF. Só não sei se ele disponibilizou algo. Creio que você pode também fazer algo parecido.

Abraços

olá eulen,

como o garcia-jj e o pbnf falaram, tem o Waffle que ajuda a gerar formulários, e aquelas listadas no site.

está nos planos do VRaptor criar uma taglib para ajudar com a parte das rotas (gerar urls a partir de controller e método)

[]'s

[quote=garcia-jj]

Um usuário do VRaptor implementou algumas tags de fazem chamadas ao JQuery, assim ele consegue fazer algo semelhante ao JSF. Só não sei se ele disponibilizou algo. Creio que você pode também fazer algo parecido.

Abraços[/quote]

Vc lembra qual é o usuario ou o post dele falando disso ?

Talvez tenha sido eu, mais não sei.

A um tempo atras alguém também perguntou por algo, quando comecei a fazer as taglibs, na verdade eram tagfiles do jsp, e ficavam mais ou menos assim(porque não trabalho mais na empresa onde eu fiz isso).

<h:calendar id="meuCalendario" name="usuario.dataNascimento" /> 

Agora tenho feito assim:

<input type="text" id="meuCalendario" name="usuario.dataNascimento" class="calendar" /> 

Nas duas situações, eu uso o JQuery UI, dessa forma eu “ganho”:

  • um botão com uma imagem de calendario para o usuário clicar;
  • o calendario em si do JQueryUI calendar
  • a mascara de data
  • e por fim mais não menos importante a validação da data, para tipos como 31/02/2011;

Javascript para a situação acima:

  • JQuery
  • JQuery UI
  • JQuery meiomask
  • JQuery validate

Agora eu tenho somente html, e tudo que eu quero crio uma classe css, a apartir daí é só se divertir.

Alguns exemplos de como eu tenho feito.

Lembrando que a o plugin do JQuery de mascara que eu uso é o meiomask.

  $(":text.cpf").each(function(){
		$(this).setMask("cpf");
	});
		
	$(":text.telefone").each(function(){
		$(this).setMask("phone");
	});
	
	$(":text.cnpj").each(function(){
		$(this).setMask("cnpj");
	});
	
	$(":text.cep").each(function(){
		$(this).setMask("cep");
	});
	
	$(":text.number").each(function(){
		var input = $(this);
		input.setMask({mask: '9', type:'repeat', 'maxLength': input.attr("maxlength")});
	});

  $.datepicker.setDefaults($.datepicker.regional["pt-BR"]);
	$(":text.calendar").each(function() {
		var calendar = $(this);
		
		calendar.setMask({mask: '99/99/9999'});
		calendar.addClass("date");
		calendar.datepicker({
			showAnim : "blind",
			showOn: "button",
			buttonImage: "/images/calendario.gif",
			buttonImageOnly: true
		});
	});

	var calendar = $(".ui-datepicker-trigger");	
	calendar.attr("title", "Clique para abrir o calendario");

eu não cheguei a testar, mais acho que da pra fazer assim também:


       $(":text.cpf").setMask("cpf");
	

Achei essa forma mais simples do que criar tagfiles.