<context-param>
中有几个JavaServer Faces web.xml
:facelets.REFRESH_PERIOD
,facelets.DEVELOPMENT
,facelets.SKIP_COMMENTS
等。我可以找到所有这些参数的完整列表?
答案 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
- 如果设置了此参数,则调用true
在facelets.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设置该值。请参阅javadocsserver
。
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 }}