jsf - “JSF 运行时”是什么意思,“javax.faces.webapp.FacesServlet”是如何相关的?
问题描述
我见过对“JSF 运行时”的引用。我以某种方式理解“javax.faces.webapp.FacesServlet”是 JSF 运行时的“入口点”。我不清楚这是什么构成。
我认为这与生命周期管理有关(根据我对 Serlvets + JSP 的了解,我对它有点熟悉 - 因为它是调用构造函数、init() 方法、 Servlet 的 service() 方法并在 Container 关闭时销毁 Servlet)。但是,我怀疑 JSF 运行时的意义远不止于此。如果 JSF 运行时仅仅是一个仅限于(并且只关心)生命周期管理的东西 - 我非常希望能稍微了解一下这对 JSF 究竟意味着什么(尽管我理解它对 Servlet 和 JSP 的意义),我看不出这在 JSF 方面具体意味着什么,并且非常感谢这方面的指导。
解决方案
在JSF 规范中确实多次提到确切的短语“ JSF 运行时” 。
渲染完成后,但在保存状态之前,JSF 运行时必须发布一个
javax.faces.event.PostRenderViewEvent
. 在这样做之后,JSF 运行时必须使用类的方法保存完成状态StateManager
。[...]
如果包含JSF 运行时的环境需要 JSR 303 Bean 验证,则 JSF 实现必须支持 JSR 303 Bean 验证。[...]
以下方法使JSF 运行时可以访问此实例存储的侦听器列表。:[...]
当JSF 运行时被其容器指示关闭时,必须执行以下操作。[...]
顺便说一句,在同一个 JSF 规范中,确切的短语“运行时”的命中率要高得多,但我会留给你去寻找它们。
它基本上归结为当前配置和活动的 JSF 应用程序。整个 JSF 生态系统都已准备FacesServlet
好Lifecycle
并Application
等待将 HTTP 请求作为 Faces 请求进行处理。faces-config.xml
通过JSF 部署描述符文件和/或@FacesXxx
带注释的类配置为默认值或覆盖/自定义。
这FacesServlet
只是 JSF 运行时的一部分。它确实是生态系统的切入点。如果传入HttpServletRequest
匹配 的 servlet 映射的 URL 模式FacesServlet
,那么它将由 servletcontainer照常调用。将FacesServlet
依次创建FacesContext
和处理请求Lifecycle
,Application
最后FacesContext
在返回到 servletcontainer 之前销毁该权利。
也可以看看:
推荐阅读
- c# - 数组的错误元素被填充
- python - 散景:限制字符串列表的绘图平移和缩放
- c# - 实体框架核心模型
- amazon-web-services - AWS CodeDeploy jar
- c++ - const 引用作为类的成员不一致
- django - Forbidden 您无权访问此服务器上的 /。在 Django、Apache、Centos7 上
- c++ - 在 Qt 中,如何将 Unicode 代码点 U+1F64B 转换为包含其等效字符“”的 QString?
- powershell - 如何创建私有数组?
- excel - 如何隐藏过滤器列表中没有值的excel中的列?
- python - 试图创建一个代码/功能,允许用户购买成分,然后将其存储在他们的库存中,怎么办?