我刚刚开始学习Java服务器面,并成功测试了我在JSF中的第一个Web应用程序。
令我困惑的是导航规则是在我的WEB-INF文件夹中的faces-config.xml中指定的,而我的web.xml中没有指定faces-config.xml文件位置的位置。
那么导航是如何发生的?
答案 0 :(得分:5)
JSF 1.2 specification (JSR 252) 要求任何JSF实现在启动时自动加载/WEB-INF/faces-config.xml
(如果存在这样的资源)。
引用10.4.2应用程序启动行为部分:
在应用程序启动时,之前 任何请求都被处理,JSF 实现必须处理零或 更多应用配置 资源,根据 以下算法:
- 在中搜索名为
“META-INF/faces-config.xml”
的所有资源ServletContext
资源路径 这个Web应用程序,并将每个加载为 一个JSF配置资源(在 顺序的相反顺序 他们归来了 关于当前的getResources()
线程的ContextClassLoader
)。- 检查是否存在名为的上下文初始化参数
javax.faces.CONFIG_FILES
。如果它 存在,将其视为以逗号分隔 上下文相关资源列表 路径(以“/”开头)和加载 每个特定的资源。- 检查是否存在Web应用程序配置资源 名为
“/WEB-INF/faces-config.xml”
, 如果资源存在,则加载它。
答案 1 :(得分:0)
我相信在{app}启动时,web.xml
中定义的Faces servlet会加载faces-config.xml
。