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.
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>
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 !
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
<f:view>
<h3><h:outputText value="Page 1" /></h3>
<h:form>
<h:commandLink value="Click here for test" action="#{testMBean.doAction}" />
</h:form>
</f:view>
Como você pode ver, ele tem um link que chama um ManagedBean, que é esse:
package mbeans;
public class TestMBean {
public String doAction() {
return "success";
}
}
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!
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.