Web.xml

Pra que esse context-param serve?

<context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</param-value> </context-param>

Ja notei que quando retiro ele do meu web.xml minhas paginas nao sao encontradas, mas gostaria de entender o que ele realmente faz.

Esse código cria um parâmetro de inicialização do contexto da aplicação. Ou seja, cria uma espécie de constante que será usada por todo mundo na aplicação. O valor dessa constante é “.xhtml”, e o nome dela é DEFAULT_SUFFIX. Provavelmente sua aplicação usa esse DEFAULT_SUFFIX para formar o nome da página que será acessada: NOME_DA_PAGINA + DEFAULT_SUFFIX. Tirando essa constante, seu programa tentaria, por exemplo, achar o arquivo paginaInicial ao invés de paginaInicial.xhtml.

Entao se eu retirar o DEFAULT_SUFIXX como faço pra aplicação funcionar? Tirar a extensao da minha pagina inicial? Nao sei se entendi bem =/

Não, suas paginas .xhtml precisam continuar com a extensão. O problema de você tirar a constante DEFAULT_SUFFIX é que em um ou mais lugares da sua aplicação o DEFAULT_SUFFIX está sendo usado. Ou você deixa o DEFAULT_SUFFIX como está ou terá de alterar seu código nos lugares onde o DEFAULT_SUFFIX está, colocando direto no código (hardcoding)".xhtml".

O problema é que provavelmente esse DEFAULT_SUFFIX está sendo usado “por debaixo dos panos”, onde você não consegue modificar. Agora, por que você quer retirar o DEFAULT_SUFFIX? Algum motivo específico?

Pense nele como uma constante global que especifica a extensão das suas páginas.

Nao quero retirar n, e so pra entender mesmo, toda vez q eu utilizar as paginas .xhtml terei que colocar essa constante entao né?

No geral, eu diria q sim.

Seria bom se alguém mais experiente comentasse mais sobre o javax.faces.DEFAULT_SUFFIX em específico. O que eu te respondi foi baseado nos meus conhecimentos sobre a tag . Estou lendo o livro “Head First: Servlets & JSP” e estou gostando bastante. Por coincidência, o último capítulo que li falava sobre ServletContext e ServletConfig, seus parâmetros iniciais e atributos. Aí vi seu tópico e pensei: “ei, li sobre isso ontem!”. Aconselho bastante a ler, pra quem tá querendo focar em Java Web, como eu.