Dúvida JSF - extensões das páginas JSP

4 respostas
C

Estou iniciando em JSF essa semana, já li alguns conceitos e até sei lhe dar com os componentes.
O problema é no web.xml, eu tento mudar a extensão da página mas quando dá certo, aparece um erro de configuração em outra parte.

Bom, é melhor eu mostrar isso no código mesmo. Tenho que programar entre tags
não é? então vamos :

[b]web.xml[/b]
[code]<?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">
    <error-page>
        <error-code>404</error-code>
        <location>/errorPages/error404.html</location>
    </error-page>
    <context-param>
        <param-name>com.sun.faces.verifyObjects</param-name>
        <param-value>false</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.CONFIG_FILES</param-name>
        <param-value>/WEB-INF/faces-config.xml</param-value>
        </context-param>
    <context-param>
        <param-name>com.sun.faces.validateXml</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</param-value>
    </context-param>
    <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>/faces/*</url-pattern> <!--como faço pra deixar com a extensão que eu quiser? -->
    </servlet-mapping> <!-- já tentei usar: "/faces/*.jsf" mas dá erro -->
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/welcomeJSF.jsp</welcome-file> <!-- se eu mudar a extensão, esse código aqui precisa ser removido pra não gerar um erro, mas daí a aplicação fica sem página default -->
    </welcome-file-list>
    </web-app>

Espero uma ajuda dos profissionais..

atenciosamente.

abraços.

4 Respostas

M

não é qualuqer extensão que pode se usar se não me engano
eu sempre uso *.jsf ou então *.faces

C

Sim eu sei. Era JSF mesmo. Só que pra eu conseguir modificar a extensão da aplicação,

eu teria que modificar aqui:
<servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern> <!--como faço pra deixar com a extensão que eu quiser? -->
    </servlet-mapping>
e remover aqui:
<welcome-file-list>
        <welcome-file>faces/welcomeJSF.jsp</welcome-file>
<!-- se eu mudar a extensão, esse código aqui precisa ser removido pra não gerar um erro, mas daí a aplicação não pode ter página defualt personalizada -->
    </welcome-file-list>

Entende agora o que quero dizer?

C

Agora eu quase consegui:

Com este código aqui todas as páginas iniciam em extensão JSF, exceto a primeira que não aparece mostrando erro depois:
<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>welcomeJSF.jsp</welcome-file>
    </welcome-file-list>
org.apache.jasper.JasperException: An exception occurred processing JSP page /welcomeJSF.jsp at line 38

35: 
36:     <body>
37: <div id="topo">        
38:         <f:view>
39:             <h1><h:outputText value="Treinamento JSP" /></h1>
40:         </f:view>
41: </div>

Então me digam: Como faço pra página inicial já iniciar com extensão jsf?

* PS: marcosharbs , nessa minha aplicação eu estou usando o endereço de meu blog como extensão e não resultou em nenhum problema. :wink:

Puxa, a pouco tempo, nem isso eu sabia configurar. Nada mal pra 1 dia de estudo...
Aguardo respostas.

Edit: consegui desta maneira: criei uma página index.jsp redirecionando para a welcomeJSF.meublog assim:
<jsp:forward page="welcomeJSF.meublog" />
Deu certo!! Tem outra maneira de iniciar a página welcome.jsf sem criar uma página index redirecionando pra ela?
G

Não, Em jsf a páginal inicial deve ser uma jsp, ou html, chamando a página *.jsf ou *.faces …
Isso é necessário para carregar o servlet jsf.

Criado 23 de fevereiro de 2009
Ultima resposta 24 de jan. de 2010
Respostas 4
Participantes 3