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

时间:2013-06-27 09:44:08

标签: jsf web.xml context-param

<context-param>中有几个JavaServer Faces web.xmlfacelets.REFRESH_PERIODfacelets.DEVELOPMENTfacelets.SKIP_COMMENTS等。我可以找到所有这些参数的完整列表?

1 个答案:

答案 0 :(得分:73)

首先,以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 specification的第11.1.3章中。这是JSF 2.0规范的相关摘录:

  

11.1.3应用程序配置参数

     

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

     
      
  • javax.faces.CONFIG_FILES - 在加载前,JSF实现将查找应用程序配置资源(请参见第11.4.4节“应用程序配置资源格式”)的上下文相关资源路径的逗号分隔列表名为“/WEB-INF/faces-config.xml”的配置资源(如果存在此类资源)。如果列表中存在“/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应用程序为JSP页面定义备用后缀   包含JSF内容。有关符号常量,请参阅javadocs   完整规范ViewHandler.DEFAULT_SUFFIX_PARAM_NAME

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

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

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

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

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

  •   
  • javax.faces.view.facelets.ResourceResolver - 如果设置了此参数,则运行时必须将其值解释为   扩展ResourceResolver的java类的完全限定类名   并且具有零参数公共构造函数或一个参数公共构造函数,其中参数的类型是   ResourceResolver。如果设置了此参数且其值不符合这些要求,则运行时必须   记录消息并继续。如果它符合这些要求并且具有单参数构造函数,则为默认值   必须将ResourceResolver传递给构造函数。如果它具有零参数构造函数,则直接调用它。   在任何一种情况下,新的facelets.RESOURCE_RESOLVER都会替换旧的javax.faces.FACELETS_SKIP_COMMENTS。运行时还必须考虑   toLowerCase().equals("true") param name作为此param名称的别名,用于向后兼容   现有的facelets标记库。

  •   
  • String - 如果设置了此参数,则调用   truefacelets.SKIP_COMMENTS表示其值返回javax.faces.FACELETS_SUFFIX,运行时必须   确保Facelets源页面中的任何XML注释都不会传递到客户端。运行时也必须   将ViewHandler.FACELETS_SUFFIX_PARAM_NAME param名称视为此param名称的别名,以实现向后兼容性   使用现有的facelets标记库。

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

  •   
  • ViewHandler.FACELETS_VIEW_MAPPINGS_PARAM_NAME - 如果设置了此参数,运行时必须将其解释为分号   (;)分隔的字符串列表,用于强制声明应用程序中的某些页面必须解释为   使用Facelets,无论其扩展名如何。运行时还必须考虑javax.faces.FULL_STATE_SAVING_VIEW_IDS   param name作为此param名称的别名,用于向后兼容现有facelets应用程序。见   javadocs表示完整的符号常量javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL   说明书

  •   
  • toLowerCase().equals("true") - 运行时必须将此参数的值解释为a   逗号分隔的视图ID列表,每个视图ID必须使用状态保存机制保存其状态   在JSF 1.2中指定。

  •   
  • String - 如果设置了此参数,则   在true表示其值的UIInput.validate()上调用javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL,任意   true的实施必须采取以下额外措施。   如果UIInput.getSubmittedValue()上下文参数值为   String(忽略大小写),UIInput.setSubmittedValue(null)返回零长度javax.faces.LIFECYCLE_ID来电   Lifecycle并继续使用null作为当前提交的值进行处理

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

  •   
  • toLowerCase().equals("true") - 运行时查询的String init参数   确定是否应该使用部分状态保存机制。   如果未定义,则运行时必须确定应用程序的版本级别。

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

    如果定义了此参数,并且应用程序的版本为1.2及以下版本,则运行时不能使用partial   国家储蓄机制。否则,如果定义了此参数,并在true上调用javax.faces.PROJECT_STAGE   表示其值返回Development,运行时必须使用部分状态机制。否则是部分状态   不得使用保存机制。

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

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

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

  •   
  • String - 如果设置了此参数,则调用   true表示其值javax.faces.validator.VALIDATOR_ID的{​​{1}},运行时不能   自动添加验证程序,其验证程序ID等于符号常量的值   com.sun.faces.到默认验证器列表。将此参数设置为true将   具有禁用Bean Validation自动安装到每个视图中的每个输入组件的效果   应用程序,尽管仍然可以手动安装。

  •   
     

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

正如您在上一段中所读到的,JSF实现也可能有自己的一组上下文参数。对于以org.apache.myfaces.开头的Mojarra,在此博客中列出:What Mojarra context parameters are available?对于以{{1}}开头的MyFaces,它们也列在他们自己的网站上:{{3 }}