Configuração do JSF
Tenho percebido que eu não consigo startar uma XHTML, pelo JSF. Eu entendi que no problema está nos arquivos: FACES-CONFIG e WEB .xml. Esses caras têm feito a minha aplicação não funcionar. Hoje começarei realmente a desenvolver. Há aqui no forum algum tutorial de configuração do Faces-Config.xml e Web.xml? O colega Davi, esse cara tem sido para mim mais que um mestre, pois tem pacientemente me auxiliado, me mostrando o caminho o qual sou muito grato a ele e a outros tambem, como o Passarela, o Dyego e etc... Bem se esqueci algum nome aqui, é porque não me lembrei nesse momento, mas há outros sim. Só preciso de um tutorial de como configurar, o que colocar em cada TAG, e usaremos o Prime Faces também. Hoje receberemos os primeiros HTML ou outra coisa já pronta e preciso aprender a colocar esses caras em meu projeto e codificar. A dúivida não são tantas de java, mas de configuração e dos Frames que usaremos. Um bom dia a todos e aguardo uma ajuda.
Pjava
Curtidas 0
Respostas
Pjava
25/04/2011
Pessoal, o seguinte. Não tenho a opção em meu Eclipse de criar um novo projeto JSF. Só tenho como Dynamic Web Project e outros, mas não JSF. Até aí beleza, pois posso adicionar os jars do JSF nele. Mas dessa forma, como eu crio um FacesServlets?
GOSTEI 0
Davi Costa
25/04/2011
Aquele link de um tutorial que havia te passado, já mostra bem o caminho das pedras, só que ele está voltado para o Rich-faces. Manda para gente te ajudar melhor as versões dos frameworks, se é JSF 2.0, JPA 2?
Manda essas versões que vai ficar mais fácil para a rapazeada te ajudar.
Att Davi
Manda essas versões que vai ficar mais fácil para a rapazeada te ajudar.
Att Davi
GOSTEI 0
Davi Costa
25/04/2011
Só para adiantar alguma coisa vou te mandar um modelo de web.xml e faces-config.xml
Obtendo o jar do PrimeFaces:
Download em http://www.primefaces.org/downloads.html
Dá uma olhada aqui tb:
http://www.patternizando.com.br/2011/04/projeto-jsf-2-0-com-primefaces-3-0-m1/
http://www.primefaces.org/documentation.html
FACES:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
</faces-config>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Resource Servlet</servlet-name>
<servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resource Servlet</servlet-name>
<url-pattern>/primefaces_resource/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsf</welcome-file>
</welcome-file-list>
</web-app>
Att Davi
Obtendo o jar do PrimeFaces:
Download em http://www.primefaces.org/downloads.html
Dá uma olhada aqui tb:
http://www.patternizando.com.br/2011/04/projeto-jsf-2-0-com-primefaces-3-0-m1/
http://www.primefaces.org/documentation.html
FACES:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
</faces-config>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Resource Servlet</servlet-name>
<servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resource Servlet</servlet-name>
<url-pattern>/primefaces_resource/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsf</welcome-file>
</welcome-file-list>
</web-app>
Att Davi
GOSTEI 0
Pjava
25/04/2011
Uma pergunta: Eu preciso realmente do faces-config.xml? Posso eliminá-lo de meu projeto? Tenho necessidade dele?Já ouvi dizer que posso tirá-lo do projeto e que ele é um ninho de problemas. É verdade isso?
GOSTEI 0
Davi Costa
25/04/2011
Em partes, pode mantê-lo só com o necessário para ele. Conforme o exemplo que te mostrei.
Em algumas situações ele pode te ajudar.
É melhor deixá-lo para o JSF 1.2 ele é necessário sim, mas no dois nem tanto, mas eu te aconselharia a deixá-lo lá sim. Provavelmente quem falou mal dele devia está falando do jsf 1.2 que deixava um arquivo gigante, mas para o 2.0 não.
Att Davi
Em algumas situações ele pode te ajudar.
É melhor deixá-lo para o JSF 1.2 ele é necessário sim, mas no dois nem tanto, mas eu te aconselharia a deixá-lo lá sim. Provavelmente quem falou mal dele devia está falando do jsf 1.2 que deixava um arquivo gigante, mas para o 2.0 não.
Att Davi
GOSTEI 0
Pjava
25/04/2011
Sempre que tento rodar uma JSF sempre dá o erro que: O Internet Explorer não pode exibir a página da internet. O que acho interessante, é que o browser padrão que uso é o FireFox 4. Acho que ele é que deveria ser chamado e não o IE. Bem, mas não creio que isso seja o problema. Abaixo minhas configurações:
WEB.xml
config.xml
Minha página para abrir o GoogleMap pelo Prime.
WEB.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> <display-name>Prime</display-name> <welcome-file-list> <welcome-file>index.jsf</welcome-file> </welcome-file-list> <servlet> <servlet-name>Resource Servlet</servlet-name> <servlet-class>org.primefaces.resource.ResourceServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Resource Servlet</servlet-name> <url-pattern>/primefaces_resource/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsf</welcome-file> </welcome-file-list> </web-app>
config.xml
<?xml version="1.0" encoding="UTF-8"?> <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0"> </faces-config>
Minha página para abrir o GoogleMap pelo Prime.
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.prime.com.tr/ui"> <h:head> </h:head> <h:body> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <p:gmap center="41.381542, 2.122893" zoom="15" type="HYBRID" style="width:600px;height:400px"/> </h:body> </html>
GOSTEI 0
Davi Costa
25/04/2011
Altere o web.xmlconforme eu te passei.
No seu vc declarou
<welcome-file-list>
<welcome-file>index.jsf</welcome-file>
</welcome-file-list>
Duas vezes e não sei se eleaceita .jsf pq não existe arquivo com essa extensão.
O ideal é colocar index.jsp e criar o arquivo index.jsp com o seguinte código:
<html>
<head> </head>
<body>
<jsp:forward page="index.jsf" />
</body>
</html>
e seu index.xhtml que é o index.jsf deixa com o mesmo código que vc me postou aí. E altera o web.xml para:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
Mas eu ainda tentaria primeiro fazer funcionar para depois melhorar eu deixaria o web.xml conforme te passei anteriormente sem alterar nada.
Att Davi
No seu vc declarou
<welcome-file-list>
<welcome-file>index.jsf</welcome-file>
</welcome-file-list>
Duas vezes e não sei se eleaceita .jsf pq não existe arquivo com essa extensão.
O ideal é colocar index.jsp e criar o arquivo index.jsp com o seguinte código:
<html>
<head> </head>
<body>
<jsp:forward page="index.jsf" />
</body>
</html>
e seu index.xhtml que é o index.jsf deixa com o mesmo código que vc me postou aí. E altera o web.xml para:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
Mas eu ainda tentaria primeiro fazer funcionar para depois melhorar eu deixaria o web.xml conforme te passei anteriormente sem alterar nada.
Att Davi
GOSTEI 0
Robson Teixeira
25/04/2011
Olá Pjava
no seu xhtml tire a tag
-----------
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
--------
pois quando for renderizar a pagina o proprio primefaces coloca os scripts necessarios para usar o componente. e arrume o cabeçalho do web.xml pois a aplicação pode não funcionar coloque assim o seu web.xml. --------- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0"> ------- quanto aoo faces-config está tudo certinho e dando uma sugestão para melhor organização o JSF 2 como ja sabe as managedBeans podem ser declaradas usando annotation nas classe e no faces-config eu coloco as regras de navegação assim mantenho separada a logica e diminuo o tamanho do xml. qualquer coisa e so chamar. att robson Passarella
pois quando for renderizar a pagina o proprio primefaces coloca os scripts necessarios para usar o componente. e arrume o cabeçalho do web.xml pois a aplicação pode não funcionar coloque assim o seu web.xml. --------- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0"> ------- quanto aoo faces-config está tudo certinho e dando uma sugestão para melhor organização o JSF 2 como ja sabe as managedBeans podem ser declaradas usando annotation nas classe e no faces-config eu coloco as regras de navegação assim mantenho separada a logica e diminuo o tamanho do xml. qualquer coisa e so chamar. att robson Passarella
GOSTEI 0
Pjava
25/04/2011
Ainda não funcionou. Veja como ficou.
Meu WEB.xml
O faces-config ficou igual, não preciso postar, nada foi alterado.
O meu XHTML
e o meu JSP
Se fiz alguma merda, me digam. Para executar eu faço assim: Com o direiro em cima da JSP e dou Run AS > Run On Server > JBoss e então ele monta a seguinte URL: localhost:8080/Prime/index.jsp. Antes do JSP eu fazia em cima do XHTML. Se eu fizer em cima do projeto ele monta a seguinte URL: localhost:8080/Prime. É dessa forma que eu estou chamando o meu projeto.
Meu WEB.xml
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> <servlet> <servlet-name>Resource Servlet</servlet-name> <servlet-class>org.primefaces.resource.ResourceServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Resource Servlet</servlet-name> <url-pattern>/primefaces_resource/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
O faces-config ficou igual, não preciso postar, nada foi alterado.
O meu XHTML
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.prime.com.tr/ui"> <h:head> </h:head> <h:body> <p:gmap center="41.381542, 2.122893" zoom="15" type="HYBRID" style="width:600px;height:400px"/> </h:body> </html>
e o meu JSP
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <body> <jsp:forward page="index.jsf" /> </body> </html>
Se fiz alguma merda, me digam. Para executar eu faço assim: Com o direiro em cima da JSP e dou Run AS > Run On Server > JBoss e então ele monta a seguinte URL: localhost:8080/Prime/index.jsp. Antes do JSP eu fazia em cima do XHTML. Se eu fizer em cima do projeto ele monta a seguinte URL: localhost:8080/Prime. É dessa forma que eu estou chamando o meu projeto.
GOSTEI 0
Davi Costa
25/04/2011
Devido a alteração que vc fez no web.xml vc tem que alterar o seu index.jsp:
<servlet-name>Resource Servlet</servlet-name>
<url-pattern>/primefaces_resource/*</url-pattern>
</servlet-mapping>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<jsp:forward page="primefaces_resource/index.jsf" />
</body>
</html>
Eu partiria do mais simles possível, para fazer funcionar e depois ir incrementando.
Att Davi
<servlet-name>Resource Servlet</servlet-name>
<url-pattern>/primefaces_resource/*</url-pattern>
</servlet-mapping>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<jsp:forward page="primefaces_resource/index.jsf" />
</body>
</html>
Eu partiria do mais simles possível, para fazer funcionar e depois ir incrementando.
Att Davi
GOSTEI 0
Pjava
25/04/2011
Quando vc me diz que partiria do mais simples, o que vc quer dizer? Poque veja, não tem praticamente nada esses códigos que passei. Apenas uma chamada a uma página XHTML.
GOSTEI 0
Davi Costa
25/04/2011
Um dos link q te passei onde vc pegou essa funcionalidade do maps,
testa só ele, com o web.xml ainda um pouco mais simples do que o seu, para aos poucos vc ir testando e incrementando seu código, falei isso só para vc pegar uma base legal. É sempre muito importante, a medida que vc for evoluindo e incrementando seu código vc ficar muito mais expert e vai notar a diferença e entender realmente o que está acontecendo, do que pegar muita coisa de uma vez muito complexa e não entender tudo a fundo.
Mas estamos chegando lá, os frameworks e a arquitetura que vc está escolhendo estão sendo muito boas, logo logo vai estar detonando no primefaces. Só mais uma dica aki tem umas vídeos aulas bem legais de primefaces, dá uma caçada depois.
Att Davi
testa só ele, com o web.xml ainda um pouco mais simples do que o seu, para aos poucos vc ir testando e incrementando seu código, falei isso só para vc pegar uma base legal. É sempre muito importante, a medida que vc for evoluindo e incrementando seu código vc ficar muito mais expert e vai notar a diferença e entender realmente o que está acontecendo, do que pegar muita coisa de uma vez muito complexa e não entender tudo a fundo.
Mas estamos chegando lá, os frameworks e a arquitetura que vc está escolhendo estão sendo muito boas, logo logo vai estar detonando no primefaces. Só mais uma dica aki tem umas vídeos aulas bem legais de primefaces, dá uma caçada depois.
Att Davi
GOSTEI 0
Dyego Carmo
25/04/2011
Bom , baixe o NetBeans e crie um projeto WEb com o framework JSF 2.0 , ele vai criar TODA a estrutura para voce... ai vc já ve ele bem legal :)
GOSTEI 0