I would like to declare some constant values use开发者_如何学JAVAd by my JSF 2 webapp inside the web.xml file like so:
<web-app>
<context-param>
<param-name>myconstantkey</param-name>
<param-value>some string value</param-value>
</context-param>
</web-app>
Getting these values from inside a backing bean is easy enough:
FacesContext ctx = FacesContext.getCurrentInstance();
String myConstantValue =
ctx.getExternalContext().getInitParameter("myconstantkey");
How do I achieve the same thing from inside a Facelets page using JSF EL to get the value?
Steve Taylor's answer does indeed work, but there is a simpler way using the JSF EL pre-defined object initParam
.
<h:outputText value="#{initParam['myconstantkey']}" />
Originally this wasn't working for me because I forgot to put the single quotes around the key name and was getting back an empty string. This solution should also work with key values that contain dot characters.
#{facesContext.externalContext.initParameterMap.myconstantkey}
Through EL
${initParam['myconstantkey']}
精彩评论