*
* @param expr ���ʽ�ַ���
* @return ���ʽ
*/
public Expression createExpression(final String expr) throws ExpressionParseException {
final Expression jexlExpression;
try {
jexlExpression = new JexlExpression(engine.createExpression(expr));
} catch (Exception e) {
throw new ExpressionParseException(e);
}
if (isSupportContextVariables() && isValidContextVariableName(expr)) {
return new ExpressionSupport() {
/**
* ȡ�ñ��ʽ�ַ�����ʾ��
*
* @return ���ʽ�ַ�����ʾ
*/
public String getExpressionText() {
return expr;
}
/**
* ��ָ�����������м�����ʽ��
*
* @param context <code>ExpressionContext</code>������
* @return ���ʽ�ļ�����
*/
public Object evaluate(ExpressionContext context) {
// ����ִ��jexl���ʽ
Object value = jexlExpression.evaluate(context);
// ���jexl���ʽ���Ϊnull�����context��ֱ��ȡֵ
if (value == null) {
value = context.get(expr);
}