See my answer at Javascript String.replace(/\$/,str) works weirdly in jsp file for possible reasons.
Longer answer: ${i} is expression in so called 'Expression Language'. Sometimes, Expression Language can be disabled. See above answer for potential reasons, and ways how to enable it.