Configuração do JSF

Java

25/04/2011

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

Pjava

Curtidas 0

Respostas

Pjava

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

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
GOSTEI 0
Davi Costa

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





GOSTEI 0
Pjava

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

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
GOSTEI 0
Pjava

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
<?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

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
GOSTEI 0
Robson Teixeira

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
GOSTEI 0
Pjava

Pjava

25/04/2011

Ainda não funcionou. Veja como ficou.
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

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


GOSTEI 0
Pjava

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

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


GOSTEI 0
Dyego Carmo

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
POSTAR