36

I would like to declare some constant values used 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?

Jim Tough
  • 14,843
  • 23
  • 75
  • 96

3 Answers3

36

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.

Jim Tough
  • 14,843
  • 23
  • 75
  • 96
6
#{facesContext.externalContext.initParameterMap.myconstantkey}
Steve
  • 8,066
  • 11
  • 70
  • 112
1

Through EL

${initParam['myconstantkey']}