Como obter HTML 'enxuto' com JSF?

Bom dia, pessoal!

Estou procurando por dicas, técnicas, manobras, qualquer coisa que ajude o JSF a gerar um HTML mais limpo, pois vejo que há muita ‘sujeira’.

Código:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">

	<h:head>
	   <title>NETSOS</title>
	</h:head>
	
	<h:body>
        
        <h:form>
            <p:outputLabel for="Usuário"/>
            <p:inputText id="Usuário" title="Usuário"></p:inputText>
            
            <p:outputLabel for="Senha"/>
            <p:inputText id="Senha" type="password"></p:inputText>
        </h:form>
        
	</h:body>

</html>

Resultado:


<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><link type="text/css" rel="stylesheet" href="/NETSOS/faces/javax.faces.resource/theme.css?ln=primefaces-bootstrap" /><link type="text/css" rel="stylesheet" href="/NETSOS/faces/javax.faces.resource/primefaces.css;jsessionid=9D4D0A4BE2DF716F77D739D5C3FB665A?ln=primefaces" /><script type="text/javascript" src="/NETSOS/faces/javax.faces.resource/jquery/jquery.js;jsessionid=9D4D0A4BE2DF716F77D739D5C3FB665A?ln=primefaces"></script><script type="text/javascript" src="/NETSOS/faces/javax.faces.resource/primefaces.js;jsessionid=9D4D0A4BE2DF716F77D739D5C3FB665A?ln=primefaces"></script>
	   <title>NETSOS</title></head><body>
<form id="j_idt5" name="j_idt5" method="post" action="/NETSOS/faces/index.xhtml;jsessionid=9D4D0A4BE2DF716F77D739D5C3FB665A" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="j_idt5" value="j_idt5" />
<label id="j_idt5:j_idt6" class="ui-outputlabel" for="j_idt5:Usuário"></label><input id="j_idt5:Usuário" name="j_idt5:Usuário" type="text" title="Usuário" class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all" /><script id="j_idt5:Usuário_s" type="text/javascript">PrimeFaces.cw('InputText','widget_j_idt5_Usuário',{id:'j_idt5:Usuário'});</script><label id="j_idt5:j_idt7" class="ui-outputlabel" for="j_idt5:Senha"></label><input id="j_idt5:Senha" name="j_idt5:Senha" type="password" class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all" /><script id="j_idt5:Senha_s" type="text/javascript">PrimeFaces.cw('InputText','widget_j_idt5_Senha',{id:'j_idt5:Senha'});</script><input type="hidden" name="javax.faces.ViewState" id="j_id1:javax.faces.ViewState:0" value="-7652260806389478852:-5358734546729045640" autocomplete="off" />
</form></body>

</html>

Não vejo nenhuma solução. Se quer ter controle e fazer ajustes finos de HTML, CSS e JS o melhor é não usar JSF.
Tem como melhorar os id’s dos elementos e tal, mas nada que ajude muito.

Esse é o comportamento não do JSF apenas, mas de um framework component based.

O que você poderia fazer é pesquisar sobre o JSF 2.2 que vem com a funcionalidade para limpar o html.

abaixo, algo válido:

[code]

JSF 2.2 Save [/code]Note que agora é muito mais simples o HTML (sem o facelets), [b]MAS[/b] você tem que ver se o primefaces está compatível com essa nova funcionalidade. [=

[quote=Hebert Coelho]Esse é o comportamento não do JSF apenas, mas de um framework component based.

O que você poderia fazer é pesquisar sobre o JSF 2.2 que vem com a funcionalidade para limpar o html.

abaixo, algo válido:

[code]

JSF 2.2 Save [/code]Note que agora é muito mais simples o HTML (sem o facelets), [b]MAS[/b] você tem que ver se o primefaces está compatível com essa nova funcionalidade. [=[/quote]

Li um pouco sobre o JSF 2.2 na Java Magazine. Parece bem mais interessante escreve-lo assim. Sabe se isso já funciona assim pra todo o JSF 2.2 Hebert?

[quote=fredericomaia10]Sabe se isso já funciona assim pra todo o JSF 2.2 Hebert? [/quote]Para o JSF 2.2 sim, para componentes eu duvido fortemente.

[quote=fredericomaia10]Não vejo nenhuma solução. Se quer ter controle e fazer ajustes finos de HTML, CSS e JS o melhor é não usar JSF.
Tem como melhorar os id’s dos elementos e tal, mas nada que ajude muito.[/quote]
Penso a mesma coisa! Se tem esse requisito, tente evitar ao máximo o acoplamento da camada de visualização com qualquer tecnologia que não seja HTML/CSS/JS.
Em compensação é bom colocar na balança o quanto estes ajustes finos valem a pena em pró da perda de produtividade.

Use Apache Wicket :slight_smile:

E qual seria a real razão para querer um HTML mais limpo?

[quote=rodrigo.uchoa]Use Apache Wicket :)[/quote]Quem dera trocar um framework fosse opção cabível para o dia a dia…

[quote=fredericomaia10]E qual seria a real razão para querer um HTML mais limpo?[/quote]Fica mais fácil de um webdesign trabalhar em seu projeto. [=
Ou manipular os trem com jquery.

[quote=Hebert Coelho][quote=fredericomaia10]E qual seria a real razão para querer um HTML mais limpo?[/quote]Fica mais fácil de um webdesign trabalhar em seu projeto. [=
Ou manipular os trem com jquery.[/quote]

Possíveis razões eu sei. =]
Estou querendo saber do autor do tópico. Quais seriam os motivos dele.

[quote=fredericomaia10]Possíveis razões eu sei. =]
Estou querendo saber do autor do tópico. Quais seriam os motivos dele.[/quote]A tá, desculpa. :’(

:stuck_out_tongue:

Desculpa ser muito direto, mas é melhor mesmo não usar nenhuma solução componente based.

Questão de layout mesmo pois terei um front-end me ajudando e facilitaria a leitura do código.

@Hebert Coelho

Obrigado pela dica, procurarei saber do recurso no JSF 2.2

Alguém tem alguma dica então para trabalhar com Java web e não utilizar JSF e etc?

[quote=Marcelo de Andrade]Alguém tem alguma dica então para trabalhar com Java web e não utilizar JSF e etc?[/quote]hum… não trabalhar com JSF?

Já que tem um web designer, manda bala tudo em framework action based

Se tem como opção mudar o framework parte pra algum action-based como VRaptor que é muito bom e tem curva de aprendizado bem baixa ou Spring MVC.

Só um detalhe, tem como você limpar também o CSS plotado pelo primefaces por exemplo, o que facilita a vida para um web design.

Action based tem SpringMVC que vc encontra mais vaga no mercado de trabalho. Tem também o Stripes que ouvi falar muito bem dele.

O VRaptor ouço falar bem, mas se sua preocupação for framework para mercado de trabalho e achar profissional que conheça o framework eu não indico.

[quote=Hebert Coelho]
O VRaptor ouço falar bem, mas se sua preocupação for framework para mercado de trabalho e achar profissional que conheça o framework eu não indico.[/quote]

De maneira geral eu concordo contigo que esta é uma preocupação válida.

No caso específico do Vraptor, acho que você não precisa procurar profissionais que conheçam o framework.
Se a pessoa conhece Spring MVC, por exemplo, ele vai achar Vraptor um passeio no parque.

[quote=AbelBueno][quote=Hebert Coelho]
O VRaptor ouço falar bem, mas se sua preocupação for framework para mercado de trabalho e achar profissional que conheça o framework eu não indico.[/quote]

De maneira geral eu concordo contigo que esta é uma preocupação válida.

No caso específico do Vraptor, acho que você não precisa procurar profissionais que conheçam o framework.
Se a pessoa conhece Spring MVC, por exemplo, ele vai achar Vraptor um passeio no parque.[/quote]

+1