¿Cuál es la diferencia entre # {} $ {} y% {}?

Actualmente estoy trabajando con struts2, y simplemente no entiendo cuál es la diferencia entre${var}, #{var} y%{var} ¿Son diferentes ámbitos? quéso ¿ellos

Encontré un ejemplo de #:

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

aquí parece que es una matriz asociativa, pero hay otras veces que lo he visto como#var (sin los corchetes) alguna idea?

Respuestas a la pregunta(4)

Su respuesta a la pregunta