In Expression Language you can just use the == or eq operator to compare object values. Behind the scenes they will actually use the Object#equals(). This way is done so, because in EL you cannot invoke methods with other signatures than standard getter (and setter) methods.
So the particular line
<c:when test="${lang}.equals(${pageLang})">
should be written as (note that the whole expression is inside the { and })
<c:when test="${lang == pageLang}">
or
<c:when test="${lang eq pageLang}">
Both are behind the scenes roughly interpreted as
jspContext.findAttribute("lang").equals(jspContext.findAttribute("pageLang"))
If you want to compare constant String values, then you need to quote it
<c:when test="${lang == 'en'}">
which is behind the scenes roughly interpreted as
jspContext.findAttribute("lang").equals("en")