dev.rafael 21 de out. de 2010
O livro está certo!! E vc nem precisa usar o .xhtml basta /pages/usuario/create q vc já vai navegar. De fato vc ñ precisa nem do método já q vc pode fazer isso diréto no action do seu commandButton (ñ q seja esse o seu caso mas ainda é possível) e vc ainda pode “sobrescrever” essa regra usando o faces-config no futuro:
<navigation-rule>
<navigation-case>
<from-outcome> /pages/usuario/create</from-outcome>
<to-view-id> /outra_pagina.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
jaziel.rc 21 de out. de 2010
Simples, qual a extensão que está mapeado no web.xml no servlet-mapping do Faces Servlet?
Tipo, se suas paginas estão mapeadas para ser *.jsf, coloque essa extensão no link que vai retornar, que elas serão interpretadas.
dev.rafael 21 de out. de 2010
Ou ñ use extensão nenhuma, assim fica mais ele vai navegar independentemente de como está mapeada a FacesServer.
robinsonbsilva 21 de out. de 2010
Está assim:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
eu coloquei no MangedBean
public String novoUsuario () {
usuario = new Usuario () ;
return "/pages/usuario/create.jsf" ; //aqui já alterei entre .jsf, .xhtml, sem extensão e o erro apresentado é java.io.FileNotFoundException
}
Desde já agradeço.
rbroz85 21 de out. de 2010
no meu funciona assim:
public String novoUsuario() {
usuario = new Usuario();
return "create";
}
e ele ja vai pra pagina q eu quero
dev.rafael 21 de out. de 2010
Nesse caso poste o restante do código do seu web.xml e do faces-config.xml.
robinsonbsilva 21 de out. de 2010
Segue:
Web.xml
& lt ;? xml version = "1.0" encoding = "UTF-8" ?& gt ;
& lt ; web-app version = "2.5"
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_2_5.xsd" & gt ;
& lt ; display-name & gt ; Client Colocation & lt ;/ display-name & gt ;
& lt ; context-param & gt ;
& lt ; param-name & gt ; daoFactoryClientColocation & lt ;/ param-name & gt ;
& lt ; param-value & gt ; br . com . empraise . dao . hibernate . FactoryDAOHibernate & lt ;/ param-value & gt ;
& lt ;/ context-param & gt ;
& lt ; listener & gt ;
& lt ; description & gt ; ServletContextListener & lt ;/ description & gt ;
& lt ; listener-class & gt ; br . com . empraise . listener . Inicializador & lt ;/ listener-class & gt ;
& lt ;/ listener & gt ;
& lt ; servlet & gt ;
& lt ; servlet-name & gt ; Faces Servlet & lt ;/ servlet-name & gt ;
& lt ; servlet-class & gt ; javax . faces . webapp . FacesServlet & lt ;/ servlet-class & gt ;
& lt ;/ servlet & gt ;
& lt ; servlet-mapping & gt ;
& lt ; servlet-name & gt ; Faces Servlet & lt ;/ servlet-name & gt ;
& lt ; url-pattern & gt ;* . jsf & lt ;/ url-pattern & gt ;
& lt ;/ servlet-mapping & gt ;
& lt ; welcome-file-list & gt ;
& lt ; welcome-file & gt ; pages / index . html & lt ;/ welcome-file & gt ;
& lt ;/ welcome-file-list & gt ;
& lt ;/ web-app & gt ;
faces-config.xml
& lt ; ? xml version = "1.0" encoding = "UTF-8" ? & gt ;
& lt ; faces - config version = "2.0" 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" & gt ;
& lt ; application & gt ;
& lt ; resource - bundle & gt ;
& lt ; base - name & gt ; br . com . empraise . integrator . rotulos & lt ; / base - name & gt ;
& lt ; var & gt ; rotulo & lt ; / var & gt ;
& lt ; / resource - bundle & gt ;
& lt ; locale - config & gt ;
& lt ; default - locale & gt ; pt & lt ; / default - locale & gt ;
& lt ; supported - locale & gt ; en & lt ; / supported - locale & gt ;
& lt ; / locale - config & gt ;
& lt ; / application & gt ;
& lt ; / faces - config & gt ;
dev.rafael 21 de out. de 2010
Ok, agora tente mudar todos os “2.5” e “2_5” do seu web.xml por “3.0” e “3_0”. Q servidor vc está utilizando?
robinsonbsilva 21 de out. de 2010
Estou usando Tomcat 6.0.29.
dev.rafael 21 de out. de 2010
Posta ai o stacktrace da exceção q vc está recebendo. Completo p favor!
robinsonbsilva 21 de out. de 2010
java . io . FileNotFoundException
org . apache . naming . resources . DirContextURLConnection . getInputStream ( DirContextURLConnection . java : 364 )
com . sun . faces . facelets . impl . DefaultFaceletCache . _getLastModified ( DefaultFaceletCache . java : 157 )
com . sun . faces . facelets . impl . DefaultFaceletCache . access $ 000 ( DefaultFaceletCache . java : 58 )
com . sun . faces . facelets . impl . DefaultFaceletCache $ 1 . newInstance ( DefaultFaceletCache . java : 78 )
com . sun . faces . facelets . impl . DefaultFaceletCache $ 1 . newInstance ( DefaultFaceletCache . java : 74 )
com . sun . faces . util . ExpiringConcurrentCache $ 1 . call ( ExpiringConcurrentCache . java : 95 )
java . util . concurrent . FutureTask $ Sync . innerRun ( Unknown Source )
java . util . concurrent . FutureTask . run ( Unknown Source )
com . sun . faces . util . ExpiringConcurrentCache . get ( ExpiringConcurrentCache . java : 110 )
com . sun . faces . facelets . impl . DefaultFaceletCache . getFacelet ( DefaultFaceletCache . java : 115 )
com . sun . faces . facelets . impl . DefaultFaceletCache . getFacelet ( DefaultFaceletCache . java : 58 )
com . sun . faces . facelets . impl . DefaultFaceletFactory . getFacelet ( DefaultFaceletFactory . java : 245 )
com . sun . faces . facelets . impl . DefaultFacelet . include ( DefaultFacelet . java : 362 )
com . sun . faces . facelets . impl . DefaultFacelet . include ( DefaultFacelet . java : 342 )
com . sun . faces . facelets . impl . DefaultFaceletContext . includeFacelet ( DefaultFaceletContext . java : 196 )
com . sun . faces . facelets . tag . ui . CompositionHandler . apply ( CompositionHandler . java : 151 )
com . sun . faces . facelets . compiler . NamespaceHandler . apply ( NamespaceHandler . java : 89 )
com . sun . faces . facelets . compiler . EncodingHandler . apply ( EncodingHandler . java : 79 )
com . sun . faces . facelets . impl . DefaultFacelet . apply ( DefaultFacelet . java : 148 )
com . sun . faces . application . view . FaceletViewHandlingStrategy . buildView ( FaceletViewHandlingStrategy . java : 734 )
com . sun . faces . lifecycle . RenderResponsePhase . execute ( RenderResponsePhase . java : 96 )
com . sun . faces . lifecycle . Phase . doPhase ( Phase . java : 97 )
com . sun . faces . lifecycle . LifecycleImpl . render ( LifecycleImpl . java : 135 )
javax . faces . webapp . FacesServlet . service ( FacesServlet . java : 309 )
dev.rafael 21 de out. de 2010
Isso é realmente estranho pois o JSF 2 ñ devia lançar nenhuma exceção p/ o caso de ñ conseguir resolver uma regra de navegação. Faz o seguinte, posta as quais arquivos do JSF 2 adicionou ao seu projeto. Se possível, posta ai todas as dependências do seu projeto.
robinsonbsilva 21 de out. de 2010
estou usando o mojarra-2.0.3-FCS
jsf-api.jar
jsf-impl.jar
As outras libs são do Hibernate 3.6
antlr-2.7.6.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.6.1.jar
slf4j-nop-1.6.1.jar
jtds-1.2.5.jar
dev.rafael 21 de out. de 2010
A view em questão ñ teria por um acaso uma tag ui:include ?
robinsonbsilva 21 de out. de 2010
Sim!
< ?xml version="1.0" encoding="ISO-8859-1" ?>
< !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:ui="http://java.sun.com/jsf/facelets">
< ui:composition xmlns:ui="http://java.sun.com/jsf/facelets" template="../template/template.xhtml">
< ui:define name="content">
< ui:include src="form.xhtml" />
<br></br>
< h:commandButton id="btnSalvar" action="#{usuarioMB.save}" value="Salvar" styleClass="botoes"/>
< h:messages/>
< /ui:define>
< /ui:composition>
< /html>
dev.rafael 21 de out. de 2010
Confira a localização do arquivo form.xhtml e, se possível, remova a tag e coloque o conteudo desse arquivo inline p/ ver se corrige o problema.
robinsonbsilva 22 de out. de 2010
Boa dia,
Está OK agora, o erro se dava aos “includes” mesmo!!
Muito obrigado pela ajuda…