I wouldn't use the term "scripting variable" for "user". In this case, "user" is a javabean in some scope (Application, Session, Request, or Page) and age is a property of that javaBean. Since the <logic:greaterThan> tag defines the name and property as expecting the name of a
java bean and it's property, neither one has to be enclosed in <%=%>. The value property, on the other hand, is expected to be either a literal or a run-time expression. So, if we can't specify something static like value="30", then we have to use a scriptlet such as <%=minAge%> to represent the number.