JSF - Acessar páginas dentro do WEB-INF

Olá a todos…

Pessoal eu tenho um projeto em que preciso acessar as páginas dentro de WEB-INF.
Mas não estou conseguindo fazer isto!

No caso eu tenho duas JSP’s dentro do WEB-INF e estou usando um ManagerBean para fazer este acesso.
Mas quando eu clico no botão da página 1 para acessar a página 2 acontece um erro de página inexistente e na barra de endereço do navegado mostra a url completa da página 1 como http://localhost:8080/jsf/WEB-INF/pagna1.jsf.

Alguêm sabe o motivo deste erro?

Obrigado.

como está seu faces-config.xml? É dentro dele que você tem que colocar o caminho do JSP dentro do WEB-INF, algo do tipo

WEB-INF/page.jsf

fala warley

no teu caso amigão tu tem que usar Taglib html da Struts para fazer esse tip de coisas, é moleza cara.

coloque struts-html.tld no /WEB-INF

e na sua página onde tu vai usar o link coloque <% taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
esse taglib você tem que declara-lo no seu web.xml : <jsp-config> <taglib> <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib> </jsp-config>

assim nosso taglib esta pronto pra usar :

<A HREF="<html:rewrite page='/Sua_pagina.jsp'/>" CLASS="WHITE"> Minha pgina</

isso ajuda?

Não existe uma certa “proteção” proporcionada pelo container que não deixa o usuário acessar nada dentro de WEB-INF diretamente?
eu já li sobre isso mas não sei se estou confundindo as bolas.

ManchesteR,
As configurações do faces-config estão corretas. Tão é que quando eu faço o teste com as páginas fora do WEB-INF o sistema funciona perfeitamente, mas dentro do WEB-INF não funciona. Lebrando que o erro ocorre quando eu tenho duas páginas dentro do WEB-INF e crio um managerbean para a página1 acessar a página2.

Hayan,
Você está falando de usar JSF com Struts? No caso eu estou usando os componente do JSF para as ações e acredito que não é possivel usar tags do JSF (como h:comandButton) com as tags do Struts.

Será que alguêm sabe o motivo do JSF não conseguir acessar as páginas dentro do WEB-INF?
Ninguêm usa isto nos projeto que desenvolve?

Será que o JSF é tão ruim aponto de não fazer uma coisa dastas? No Struts eu fazia isto fácil ! :frowning:

Obrigado a todos.

Warley,

Acabei de fazer um exemplo aqui e funcionou dentro do WEB-INF.
No meu exemplo eu tenho 2 páginas (index.jsp e result.jsp). o index.jsp está na raiz do projeto, enquanto o result.jsp está dentro do WEB-INF.

Abaixo segue o código do Index.jsp

&lt;f:view&gt;
	&lt;h3&gt;&lt;h:outputText value="Page 1" /&gt;&lt;/h3&gt;
	&lt;h:form&gt;
		&lt;h:commandLink value="Click here for test" action="#{testMBean.doAction}" /&gt;
	&lt;/h:form&gt;
&lt;/f:view&gt;

Como você pode ver, ele tem um link que chama um ManagedBean, que é esse:

package mbeans;

public class TestMBean {	
	public String doAction() {
		return "success";
	}
}

E finalmente o WEB-INF/result.jsp

&lt;f:view&gt;
	&lt;h3&gt;&lt;h:outputText value="RESULT" /&gt;&lt;/h3&gt;
&lt;/f:view&gt;

Claro, faltou o faces-config.xml

	&lt;managed-bean&gt;
		&lt;managed-bean-name&gt;testMBean&lt;/managed-bean-name&gt;
		&lt;managed-bean-class&gt;mbeans.TestMBean&lt;/managed-bean-class&gt;
		&lt;managed-bean-scope&gt;request&lt;/managed-bean-scope&gt;
	&lt;/managed-bean&gt;
	&lt;navigation-rule&gt;
		&lt;from-view-id&gt;/index.jsp&lt;/from-view-id&gt;
		&lt;navigation-case&gt;
			&lt;from-outcome&gt;success&lt;/from-outcome&gt;
			&lt;to-view-id&gt;/WEB-INF/result.jsp&lt;/to-view-id&gt;
		&lt;/navigation-case&gt;
	&lt;/navigation-rule&gt;

O ambiente que eu fiz o teste foi:
Java 1.5, Tomcat 6, Eclipse Europa e Ubuntu 7.10

ManchesteR,

Obrigado por responder!

Vi o seu teste e funciona, eu já até tinha testado isto antes.

Mas agora faz o seguinte teste. Crie outro jsp Result2.jsp (endro de WEB-INF) e tenta ir da sua página Result.jsp (que está dentro do WEB-INF) para Result2.jsp usando um managed-bean. Não vai funcionar!

Se der certo vc me fala. :wink:

Obrigado.

Realmente Warley

Eu lembro que eu já usei essa técnica muito com Webwork/Struts 2, mas com JSF, devido ao <from-view-id>, não é possível deixar a página de origem dentro do WEB-INF.

com struts 2 funciona blz!

ja conseguiram com JSF 2 usando annotation ?