Java 在xhtml页面中打印Facelets参数
是否可以在xhtml页面中打印facelets参数的值,例如“facelets.DEVELOPMENT”(在web.xml中配置) 注:我想打印这些值,即使它们不在web.xml中。在这些情况下,它将打印设置的默认值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上下文参数的值: #
谢谢。您不能直接引用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']}
)。算算吧。