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
<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";
}
}
E finalmente o WEB-INF/result.jsp
<f:view>
<h3><h:outputText value="RESULT" /></h3>
</f:view>
Claro, faltou o faces-config.xml
<managed-bean>
<managed-bean-name>testMBean</managed-bean-name>
<managed-bean-class>mbeans.TestMBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/index.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/WEB-INF/result.jsp</to-view-id>
</navigation-case>
</navigation-rule>
O ambiente que eu fiz o teste foi:
Java 1.5, Tomcat 6, Eclipse Europa e Ubuntu 7.10