所有与JSF相关的web.xml上下文参数名称和值的概述

Che*_*rry 29 jsf web.xml context-param

有几个的JavaServer Faces <context-param>web.xml:facelets.REFRESH_PERIOD,facelets.DEVELOPMENT,facelets.SKIP_COMMENTS等我在哪里可以找到所有这些PARAMS的完整列表?

Bal*_*usC 74

首先,那些开头facelets.不是JSF上下文参数,而是Facelets 1.x上下文参数.以前,在JSF 1.x时代,Facelets并未作为JSF的一部分进行集成.但是,自JSF 2.0以来,Facelets作为JSF的一部分进行集成,将遗留JSP替换为默认视图技术,并且大多数Facelets 1.x上下文参数都重新映射到JSF 2.x上下文参数.

真正的JSF上下文参数名称以javax.faces..开头.它们列在JSF规范的第11.1.3章中.以下是JSF 2.0规范的相关摘录:

11.1.3应用配置参数

Servlet容器支持可以通过<context-param>在Web应用程序部署描述符中包含元素来自定义的应用程序配置参数.所有JSF实现都需要支持以下应用程序配置参数名称:

  • javax.faces.CONFIG_FILES- 在加载名为" /WEB-INF/faces-config.xml" 的配置资源之前,JSF实现将查找应用程序配置资源(请参见第11.4.4节"应用程序配置资源格式")的上下文相关资源路径的逗号分隔列表(如果这样的资源)存在).如果/WEB-INF/faces-config.xml列表中存在" ",则必须将其忽略.

  • javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE- 如果设置了此参数,并且调用其值返回toLowerCase().equals("true")String表示true,则 Application.createConverter()必须保证所有javax.faces.convert.DateTimeConverter实例的时区的缺省值 必须等于TimeZone.getDefault() 而不是" GMT".

  • javax.faces.DEFAULT_SUFFIX - 允许Web应用程序为包含JSF内容的JSP页面定义备用后缀.有关ViewHandler.DEFAULT_SUFFIX_PARAM_NAME完整规范的符号常量,请参阅javadocs .

  • javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER- 如果设置了此参数,并且调用 其值返回toLowerCase().equals("true")String表示true,则默认值 ViewHandler必须符合此规范的最新1.2版本中的指定.在第7.5节"ViewHandler"中指定并在默认情况下实现的任何行为都ViewHandler不能由运行时执行,该默认值与处理JavaServer Faces View声明语言中创建的页面请求有关.

  • javax.faces.FACELETS_LIBRARIES - 如果设置了此参数,则运行时必须将其解释为以分号(;)分隔的路径列表,以"/"开头(不带引号).运行时必须将列表中的每个条目解释为相对于Web应用程序根目录的路径,并将在该路径中找到的文件解释为facelet标记库,符合第1.1节"应用程序配置资源文件的XML架构定义"中声明的模式并根据第10.3.2节"Facelet标签库机制"公开其中的标签.运行时还必须将 facelets.LIBRARIESparam名称视为此param名称的别名,以便向后兼容现有facelets标记库.

  • javax.faces.FACELETS_BUFFER_SIZE- ResponseWriter 生成时在响应上设置的缓冲区大小.默认情况下,该值为-1,不会在响应上指定缓冲区大小.如果您使用开发模式以保证在生成错误时不会部分呈现响应,则应该增加此值.运行时还必须将facelets.BUFFER_SIZEparam名称视为此param名称的别名,以便向后兼容现有facelets标记库.

  • javax.faces.DECORATORS- 分号(;)分隔类型的类名列表 javax.faces.view.facelets.TagDecorator,带有无参数构造函数.当Facelets VDL视图的第一个请求命中ViewHandler页面编译时,将加载这些装饰器.运行时还必须将facelets.DECORATORS参数名称视为此参数名称的别名,以便向后兼容现有的facelets标记库.

  • javax.faces.FACELETS_REFRESH_PERIOD - 请求页面时,编译器应检查更改的秒数.如果您不希望编译器在编译页面后检查更改,则使用值-1.设置较低的刷新周期有助于在开发期间编辑正在运行的应用程序中的页面.运行时还必须将facelets.REFRESH_PERIODparam名称视为此param名称的别名,以便向后兼容现有的facelets标记库.

  • javax.faces.FACELETS_RESOURCE_RESOLVER- 如果设置了此参数,则运行时必须将其值解释为扩展的java类的完全限定类名,javax.faces.view.facelets.ResourceResolver 并且具有零参数公共构造函数或参数类型为的一个参数public构造函数 ResourceResolver.如果设置了此参数且其值不符合这些要求,则运行时必须记录消息并继续.如果它符合这些要求并且具有单参数构造函数,则ResourceResolver必须将缺省值 传递给构造函数.如果它具有零参数构造函数,则直接调用它.在任何一种情况下,新的ResourceResolver替换旧的.运行时还必须将 facelets.RESOURCE_RESOLVERparam名称视为此param名称的别名,以便向后兼容现有facelets标记库.

  • javax.faces.FACELETS_SKIP_COMMENTS- 如果设置了此参数,并且调用 其值返回toLowerCase().equals("true")String表示true,则运行时必须确保Facelets源页面中的任何XML注释都不会传递给客户端.运行时还必须将facelets.SKIP_COMMENTSparam名称视为此param名称的别名,以便向后兼容现有facelets标记库.

  • javax.faces.FACELETS_SUFFIX - 允许Web应用程序为包含JSF内容的基于Facelet的XHTML页面定义备用后缀.有关ViewHandler.FACELETS_SUFFIX_PARAM_NAME完整规范的符号常量,请参阅javadocs .

  • javax.faces.FACELETS_VIEW_MAPPINGS - 如果设置了此参数,则运行时必须将其解释为分号(;)分隔的字符串列表,用于强制声明应用程序中的某些页面必须解释为使用Facelets,而不管其扩展名如何.运行时还必须将facelets.VIEW_MAPPINGS param名称视为此param名称的别名,以便向后兼容现有facelets应用程序.有关ViewHandler.FACELETS_VIEW_MAPPINGS_PARAM_NAME完整规范的符号常量,请参阅javadocs .

  • javax.faces.FULL_STATE_SAVING_VIEW_IDS - 运行时必须将此参数的值解释为以逗号分隔的视图ID列表,每个视图ID必须使用JSF 1.2中指定的状态保存机制保存其状态.

  • javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL- 如果设置了此参数,并且调用其值返回toLowerCase().equals("true")String表示true,则任何实现都UIInput.validate()必须采取以下附加操作.如果javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULLcontext参数值为 true(忽略大小写),则UIInput.getSubmittedValue()返回零长度String调用 UIInput.setSubmittedValue(null)并继续使用null作为当前提交的值进行处理

  • javax.faces.LIFECYCLE_ID- Lifecycle处理此Web应用程序的JSF请求时要使用的实例的生命周期标识符.如果未指定,则LifecycleFactory.DEFAULT_LIFECYCLE必须使用标识的JSF默认实例 .

  • javax.faces.PARTIAL_STATE_SAVING- ServletContext运行时查询的init参数,用于确定是否应使用部分状态保存机制.如果未定义,则运行时必须确定应用程序的版本级别.

    • 对于1.2及以下版本的应用程序,运行时不得使用部分状态保存机制.
    • 对于2.0及更高版本的应用程序,运行时必须使用部分状态保存机制.

    如果定义了此参数,并且应用程序的版本为1.2及更低版本,则运行时不能使用部分状态保存机制.否则,如果定义了此param,并且调用 其值toLowerCase().equals("true")String表示形式返回true,则运行时必须使用部分状态机制.否则,不得使用部分状态保存机制.

  • javax.faces.PROJECT_STAGE - 描述此特定JSF应用程序在软件开发生命周期中的位置的可读字符串.有效值为" Development"," UnitTest"," SystemTest"或" Production",对应于类的枚举常量 javax.faces.application.ProjectStage.也可以通过JNDI设置该值.请参阅javadocs Application.getProjectStage().

  • javax.faces.STATE_SAVING_METHOD - 保存状态信息的位置.有效值为" server"(通常保存在HttpSession)和" client"(通常在后续表单提交中保存为隐藏字段).如果未指定,则server必须使用默认值" ".

  • javax.faces.VALIDATE_EMPTY_FIELDS- 如果设置了此参数,并且调用 其值返回toLowerCase().equals("true")String表示,true则将验证所有提交的字段.这是允许模型验证器决定当前应用程序中是否允许空值或空值的必要条件.如果值为false,则null或空值将不会传递给验证器.如果值为字符串" auto",则运行时必须检查当前环境中是否存在JSR-303 Bean验证.如果是这样,则运行时必须继续,就像true指定了值" "一样.如果当前环境中不存在JSR-303 Bean验证,则运行时大部分都将继续进行,就像值"false"已被指定.如果未设置param,则系统必须表现为param设置为值" auto".

  • javax.faces.validator.DISABLE_DEFAULT_BEAN_VALIDATOR- 如果设置了此参数,并且调用 其值返回toLowerCase().equals("true")String表示true,则运行时不能自动将验证程序的validator-id值等于符号常量的值添加 javax.faces.validator.VALIDATOR_ID到默认验证程序列表中.将此参数设置为true将禁止将Bean Validation自动安装到应用程序中每个视图中的每个输入组件,但仍可以手动安装.

JSF实现可以选择支持其他配置参数,以及定制JSF实现的其他机制; 但是,依赖这些工具的应用程序将无法移植到其他JSF实现.

正如您在上一段中所读到的,JSF实现也可能有自己的一组上下文参数.对于Mojarra,com.sun.faces.本博客列出的是Mojarra:Mojarra的上下文参数是什么?对于MyFaces而言org.apache.myfaces.,它们也是在自己的网站上列出的:MyFaces文档 - Web Context Parameters.

  • @StephanRauh:我将它迁移到我的博客:http://balusc.omnifaces.org/2015/09/what-mojarra-context-parameters-are.html (2认同)