Senhoras e senhores
Realmente eu preciso da ajuda de vocês…
Vou tentar explicar da melhor forma possível:
Criei um projeto Web, usando os recursos do Netbeans 6.1, (Classes de entidades do banco de dados e Páginas JSF de classes de entidades) - JEITO FACIL NETBEANS;
É criado 4 arquivos: Edit.jsp, New.jsp, List.jsp, Detail.jsp - para cada entidade (no meu projeto são 47 entidades);
New.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>New TipoDespesa</title>
</head>
<body>
<f:view>
<h:messages errorStyle="color: red" infoStyle="color: green" layout="table"/>
<h1>New TipoDespesa</h1>
<h:form>
<h:inputHidden id="validateCreateField" validator="#{tipoDespesa.validateCreate}" value="value"/>
<h:panelGrid columns="2">
<h:outputText value="Codigo:"/>
<h:inputText id="codigo" value="#{tipoDespesa.tipoDespesa.codigo}" title="Codigo" required="true" requiredMessage="The codigo field is required." />
<h:outputText value="Descricao:"/>
<h:inputText id="descricao" value="#{tipoDespesa.tipoDespesa.descricao}" title="Descricao" required="true" requiredMessage="The descricao field is required." />
</h:panelGrid>
<br />
<h:commandLink action="#{tipoDespesa.create}" value="Create"/>
<br />
<br />
<h:commandLink action="#{tipoDespesa.listSetup}" value="Show All TipoDespesa Items" immediate="true"/>
<br />
<a href="/WebApplication1/faces/welcomeJSF.jsp">Index</a>
</h:form>
</f:view>
</body>
</html>
List.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Listing TipoDespesa Items</title>
</head>
<body>
<f:view>
<h:messages errorStyle="color: red" infoStyle="color: green" layout="table"/>
<h1>Listing TipoDespesa Items</h1>
<h:form>
<h:outputText escape="false" value="(No TipoDespesa Items Found)<br />" rendered="#{tipoDespesa.itemCount == 0}" />
<h:panelGroup rendered="#{tipoDespesa.itemCount > 0}">
<h:outputText value="Item #{tipoDespesa.firstItem + 1}..#{tipoDespesa.lastItem} of #{tipoDespesa.itemCount}"/>
<h:commandLink action="#{tipoDespesa.prev}" value="Previous #{tipoDespesa.batchSize}" rendered="#{tipoDespesa.firstItem >= tipoDespesa.batchSize}"/>
<h:commandLink action="#{tipoDespesa.next}" value="Next #{tipoDespesa.batchSize}" rendered="#{tipoDespesa.lastItem + tipoDespesa.batchSize <= tipoDespesa.itemCount}"/>
<h:commandLink action="#{tipoDespesa.next}" value="Remaining #{tipoDespesa.itemCount - tipoDespesa.lastItem}"
rendered="#{tipoDespesa.lastItem < tipoDespesa.itemCount && tipoDespesa.lastItem + tipoDespesa.batchSize > tipoDespesa.itemCount}"/>
<h:dataTable value='#{tipoDespesa.tipoDespesas}' var='item' border="0" cellpadding="2" cellspacing="0" rowClasses="jsfcrud_oddrow,jsfcrud_evenrow" rules="all" style="border:solid 1px">
<h:column>
<f:facet name="header">
<h:outputText value="Codigo"/>
</f:facet>
<h:outputText value=" #{item.codigo}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Descricao"/>
</f:facet>
<h:outputText value=" #{item.descricao}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText escape="false" value=" "/>
</f:facet>
<h:commandLink value="Show" action="#{tipoDespesa.detailSetup}">
<f:param name="jsfcrud.currentTipoDespesa" value="#{tipoDespesa.asString[item]}"/>
</h:commandLink>
<h:outputText value=" "/>
<h:commandLink value="Edit" action="#{tipoDespesa.editSetup}">
<f:param name="jsfcrud.currentTipoDespesa" value="#{tipoDespesa.asString[item]}"/>
</h:commandLink>
<h:outputText value=" "/>
<h:commandLink value="Destroy" action="#{tipoDespesa.destroy}">
<f:param name="jsfcrud.currentTipoDespesa" value="#{tipoDespesa.asString[item]}"/>
</h:commandLink>
</h:column>
</h:dataTable>
</h:panelGroup>
<br />
<h:commandLink action="#{tipoDespesa.createSetup}" value="New TipoDespesa"/>
<br />
<a href="/WebApplication1/faces/welcomeJSF.jsp">Index</a>
</h:form>
</f:view>
</body>
</html>
O Netbeans me oferece “Link’s” no welcomeJSF.jsp:
<f:view>
<h:form>
<h1><h:outputText value="JavaServer Faces" /></h1>
<br/>
<h:commandLink action="#{tipoDespesa.listSetup}" value="Show All TipoDespesa Items"/>
</h:form>
</f:view>
até aí tudo ok. Clico no link do welcome e abre uma nova pagina (List.jsp) com o formulario…
Agora acreditem quando eu digo SEMANAS trabalhando nisso… encontrei isso:
1 frustação = Não consegui fazer funcionar com o Tomcat… só GlassFish
2 = Não achei framework que me ajudasse de maneira fácil e RÁPIDA, muito RÁPIDA a fazer um template.
Template = Tenho um layout com menus, substituindo os links… e um espaço para IR o formulário, ex: clicar no link do menu e em vez de abrir nova pagina, “pega” o formulário do dito List.jsp e mostra no espaço reservado…
3 = Tentei o Facelets… sem chance só funciona com xhtml e não conheço forma de fazer funcionar nesses JSP’s…
4 = Tentei o SiteMesh, não sei, parece que não funciona no GlassFish, nos tutoriais funcionam, mas não qdo quero utilizar o “JEITO FACIL NETBEANS”;
5 = O Tiles, Menta, Velocity, tentei entender e aplicar os tutoriais… mas são complicados demais… (minha opinião, antes de ver eles funcionando é claro) - Não segui adiante com esses…
Pois bem, gostaria de contar com a vossa experiência…
1 - Insistir nos Frameworks “dificeis”;
2 - Alternativa para o Facelets ou SiteMesh;
Desculpem a forma do post, mas preciso terminar esse meu TCC (Complexo)… e não quero desistir de usar template na minha aplicação depois de tanto tempo…
Obrigado