qual é a diferença entre # {} $ {} e% {}?

Atualmente, estou trabalhando com struts2 e simplesmente não entendo qual é a diferença entre${var}, #{var} e%{var} eles são escopos diferentes? o queestamo eles

Encontrei um exemplo do #:

<s:select label="Year"
      id="%{param.name}"
      list="#{'2010':'2010','2011':'2011','2012':'2012','2013':'2013','2014':'2014', '2015':'2015'}"
      value="%{currentYear}"
      required="true"
/>

aqui parece que é um array associativo, mas há outras vezes em que o vejo como#var (sem os colchetes) alguma idéia?

questionAnswers(4)

yourAnswerToTheQuestion