Java 在xhtml页面中打印Facelets参数

Java 在xhtml页面中打印Facelets参数,java,jsf-2,facelets,Java,Jsf 2,Facelets,是否可以在xhtml页面中打印facelets参数的值,例如“facelets.DEVELOPMENT”(在web.xml中配置) 注:我想打印这些值,即使它们不在web.xml中。在这些情况下,它将打印设置的默认值 谢谢。您不能直接引用EL中的所有Facelets特定参数,即使不是默认参数,但您可以引用EL中的所有上下文参数。它们可以通过#{initParam}获得,它基本上引用了 因此,如果您事先知道参数名称,则应执行以下操作: facelets.DEVELOPMENT上下文参数的值: #

是否可以在xhtml页面中打印facelets参数的值,例如“facelets.DEVELOPMENT”(在web.xml中配置)

注:我想打印这些值,即使它们不在web.xml中。在这些情况下,它将打印设置的默认值


谢谢。

您不能直接引用EL中的所有Facelets特定参数,即使不是默认参数,但您可以引用EL中的所有上下文参数。它们可以通过
#{initParam}
获得,它基本上引用了

因此,如果您事先知道参数名称,则应执行以下操作:


facelets.DEVELOPMENT上下文参数的值:
#{initParam['facelets.DEVELOPMENT']}

或者,如果您只想显示所有上下文参数:


#{p.key}
#{p.value}
请注意,之所以使用此选项,是因为它不支持贴图。但是,如果您确实需要视图渲染时间组件而不是视图生成时间标记,那么您也可以使用
,前提是您的环境中支持EL 2.2:


#{p.key}
#{p.value}
无论哪种方式,为了专门过滤Facelets参数,请检查
{p.key}
是否以
“Facelets.”
开头,以此类推


#{p.key}
#{p.value}

Update根据评论,您似乎更感兴趣的是JSF项目阶段(JSF2中的JSF项目阶段通常由
javax.faces.project\u阶段
上下文参数设置顺便说一句,
facelets.DEVELOPMENT
特定于旧的facelets 1.x)。此信息仅可通过以下方式获取:

#{facesContext.application.projectStage}
要特别检查JSF是否处于开发阶段,只需执行以下操作


JSF正在开发阶段运行!

同样,要了解所有隐式EL对象的概述,请查看第1段中的链接。

谢谢@BalusC。但是我需要这些值,即使我在web.xml中省略了它们。例如,我需要知道facelets.DEVELOPMENT是否设置为true或false,但我没有在web.xml中设置它。项目阶段仅可通过
{facesContext.application.projectStage}
使用。您只需检查它是否等于
Development
。请注意,
facelets.Development
是特定于facelets 1.x的,而不是JSF 2.x(您似乎是根据问题标签使用的),它应该是
javax.faces.PROJECT\u STAGE
。但是其他配置值呢,比如
javax.faces.STATE\u SAVING\u METHOD
javax.faces.PARTIAL\u STATE\u SAVING
?部署之前您知道默认值。您知道如何在EL中找到特定的上下文参数(例如通过
{initParam['javax.faces.STATE_SAVING_METHOD']}
)。算算吧。