Символ %
вызывает оценку OGNL, поэтому <s:property name="%{foo}"/>
запросит в стеке свойство foo
. Это не всегда требуется (на самом деле редко), но проще использовать его для ясности.
Символ #
обращается к именованной переменной контекста стека значений , например, вы использовали ее для доступа к переменной, созданной с помощью тега <s:set>
. Он нужен вам для доступа к таким вещам, как переменная сеанса, например <s:property name="#session.user.name"/>
.