...
- All String attribute types are parsed for the "%{ ... }" notation.
- All non-String attribute types are not parsed, but evaluated directly as an expression
- The exception to rule #2 is that if the non-String attribute uses the escape notion "%{}", the notation is ignored as redundant, and the content evaluated.
Note |
---|
Please remember about altSyntax option that can change when value is evaluated as an expression - Alt Syntax |
Expression Language Notations
Code Block |
---|
<p>Username: ${user.username}</p> |
| A JavaBean object in a standard context in Freemarker, Velocity, or JSTL EL (Not OGNL). |
Code Block |
---|
<s:textfield name="username"/> |
| A username property on the Value Stack. |
Code Block |
---|
<s:url id="es" action="Hello">
<s:param name="request_locale">
es
</s:param>
</s:url>
<s:a href="%{es}">Espanol</s:a> |
| Another way to refer to a property placed on the Value Stack. |
Code Block |
---|
<s:property
value="#session.user.username" /> |
| The username property of the User object in the Session context. |
Code Block |
---|
<s:select
label="FooBar" name="foo"
list="#{'username':'trillian',
'username':'zaphod'}" /> |
| A static Map, as in put("username","trillian"). |
Disallowed property names
The following names of property are disallowed:
- parameters
- application
- session
- struts
- request
- servletRequest
- servletResponse
The below code will not work:
Code Block |
---|
|
<s:iterator value="parameters"/>
|
Code Block |
---|
|
public class MyAction {
private String[] parameters;
public String[] getParameters() {
return parameters;
}
}
|