Jsf 2 从非Jsf页面调用Jsf视图id
我们正在将新应用程序与现有JSP应用程序集成,并尝试重用一些现有功能。 我在faces-navigation.xml中有一个导航规则,比如Jsf 2 从非Jsf页面调用Jsf视图id,jsf-2,Jsf 2,我们正在将新应用程序与现有JSP应用程序集成,并尝试重用一些现有功能。 我在faces-navigation.xml中有一个导航规则,比如 <from-view-id>/WEB-INF/jsp/admin/login.xhtml</from-view-id> <navigation-case> <from-outcome>success</from-outcome> <to-view-id>/WEB-INF/
<from-view-id>/WEB-INF/jsp/admin/login.xhtml</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/WEB-INF/jsp/admin/welcome.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>admin</from-outcome>
<to-view-id>/WEB-INF/jsp/admin/dashaboard.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
/WEB-INF/jsp/admin/login.xhtml
成功
/WEB-INF/jsp/admin/welcome.xhtml
管理
/WEB-INF/jsp/admin/dashon.xhtml
在我的jsp中,我试图像这样调用这个定义
<a href="/WEB-INF/jsp/admin/login.xhtml">Admin login </a>
当我点击“管理员登录”时,我发现页面未找到异常
是否有其他方法调用此视图?无法公开访问
/WEB-INF
中的文件(即,最终用户无法通过在浏览器地址栏中输入其裸URL直接打开/WEB-INF
中的任何文件)。它们只能由对/WEB-INF
文件夹中的文件执行RequestDispatcher#forward()
的访问。旧的webapp代码设置显然使用了这样一个servlet,要么是国产的,要么是来自不同的MVC框架
您应该将这些页面移动到/WEB-INF
文件夹之外的。顺便说一下,我还要从路径中删除误导性的/jsp
部分,因为这些文件根本不是jsp文件。考虑到.xhtml
扩展,您实际上使用的是它的后续facelet
顺便说一下,由于新的“隐式导航”特性,自JSF2.0以来,导航规则已经过时。也许您在学习JSF时过于关注针对JSF 1.x的书籍/教程了?在
/WEB-INF
中的文件是不可公开访问的(即,最终用户无法通过在浏览器的地址栏中输入其空URL直接打开/WEB-INF
中的任何文件)。它们只能由对/WEB-INF
文件夹中的文件执行RequestDispatcher#forward()
的访问。旧的webapp代码设置显然使用了这样一个servlet,要么是国产的,要么是来自不同的MVC框架
您应该将这些页面移动到/WEB-INF
文件夹之外的。顺便说一下,我还要从路径中删除误导性的/jsp
部分,因为这些文件根本不是jsp文件。考虑到.xhtml
扩展,您实际上使用的是它的后续facelet
顺便说一下,由于新的“隐式导航”特性,自JSF2.0以来,导航规则已经过时。也许您在学习JSF时,过于关注JSF1.x目标书籍/教程了?您是对的。这是一个5年前的应用程序,构建于JSF1.2之上,然后部分迁移到JSF2.0。我将把文件移到WEB-INF之外,看看这是否有帮助。我也用漂亮的脸蛋来解决这个问题,但我想那是一种过度的杀伤力。这么简单的东西。从WEB-INF中删除了这些文件夹,它们都被删除了accessible@BalusC,我有一个关于你最后的评论。你能看一下吗?你是对的。这是一个5年前的应用程序,构建于JSF1.2之上,然后部分迁移到JSF2.0。我将把文件移到WEB-INF之外,看看这是否有帮助。我也用漂亮的脸蛋来解决这个问题,但我想那是一种过度的杀伤力。这么简单的东西。从WEB-INF中删除了这些文件夹,它们都被删除了accessible@BalusC,我有一个关于你最后的评论。你能看一下吗?