假設internetLastModified是一個實例方法,創建了一個簡單的Directory類,並嘗試使用SpelExpressionParser來查看發生了什麼。
public class DirectoryExamplesMain {
public static final void main(String[] args) {
ExpressionParser parser = new SpelExpressionParser();
org.springframework.expression.Expression exp = null;
Directory dir = new Directory();
// Literal
exp = parser.parseExpression("internetLastModified");
Date d = exp.getValue(dir, Date.class);
System.out.format("internetLastModified", d);
}
}
而且我得到的結果是internetLastModified [Fri May 03 15:40:44 CDT 2013]
如果目錄是一個bean認爲你需要使用"@directory.internetLastModified"
作爲表達什麼。您可以在參考手冊的第7.5節中找到這樣的例子。
這裏有一個簡單的方法來測試。
import java.util.Date;
import org.springframework.expression.AccessException;
import org.springframework.expression.BeanResolver;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
public class DirectoryExamplesMain {
public static final void main(String[] args) {
final ExpressionParser parser = new SpelExpressionParser();
// Bean references
final StandardEvaluationContext context = new StandardEvaluationContext();
context.setBeanResolver(
new BeanResolver() {
@Override
public Object resolve(EvaluationContext arg0, String arg1)
throws AccessException {
return new Directory();
}});
System.out.format("%s [%s]%n","@directory.internetLastModified", parser.parseExpression("@directory.internetLastModified").getValue(context));
}
我不明白你的意思。你是否試圖從你的模型打印一個列表條目? – 2013-05-03 12:55:02
你如何訪問它? – Kai 2013-05-03 13:27:52
你能提供一個你想從列表中獲得什麼的例子嗎? – Xenson 2013-05-03 14:45:42