本文中的示例说明了Spring使用Expression接口计算表达式的操作。 共享仅供参考。 具体如下。
万本
package org.crazyit.app.domain;
import java.util.Date;
公共类人员
{
私有整合者id;
私有字符串名称;
private Date birth;
//没有参数的构造函数
公共人员()
{
}
//初始化所有成员变量的构造函数
公共人员(integer id,String name,Date birth ) )。
{
this.id=id;
this.name=name;
this.birth=birth;
}
//id的setter和getter方法
公共语音设置(integer id ) )。
{
this.id=id;
}
公共集成器getid (
{
return this.id;
}
//name的setter和getter方法
公共语音集名称(字符串名称) )。
{
this.name=name;
}
公共字符串获取名称(
{
return this.name;
}
//birth的setter和getter方法
公共身份验证(date birth ) )。
{
this.birth=birth;
}
公共数据获取(
{
return this.birth;
}
}
测试类2
打包lee;
importorg.spring framework.expression.*;
importorg.spring framework.expression.spel.standard.*;
importorg.spring framework.expression.spel.support.*;
import java.util.*;
import org.crazyit.app.domain.*;
公共类剥离
{
publicstaticvoidmain (string [ ] args ) )。
{
创建用于分析//表达式的ExpressionParser对象
expressionparserparser=newspelexpressionparser (;
//最简单的字符串表达式
expression exp=parser.parse expression (' ' hello world ' ' );
system.out.println('Helloworld '结果: ' exp.getValue ) );
调用//方法的表达式
exp=parser.parse expression (' hello world '.concat ('! () );
system.out.println (' hello world '.concat ('! () )的结果) )。
exp.getValue ();
//调用的getter方法
exp=parser.parse expression (' hello world '.bytes ' );
system.out.println (' hello world '.bytes结果: '
exp.getValue ();
//要访问的属性(d相当于HelloWorld.getBytes ().length ) ) ) ) ) ) )。
exp=parser.parse expression (' hello world '.bytes.length );
system.out.println (' hello world '.bytes.length的结果:'
exp.getValue ();
//使用构造函数创建对象
exp=parser.parse expression (' new string ' hello world ' )。
'.toUpperCase () );
system.out.println (' new string ' ' hello world ' )。
'.toUpperCase () )的结果如下:
EXP.getvalue(string.class );
personperson=newperson(1,' xqdfy ',new Date );
exp=parser.parse expression (' name );
//以指定对象为root计算表达式的值
相当于调用person.name表达式的值
system.out.println('persn为root,name表达式的值为'
EXP.getvalue(Person,String.class );
exp=parser.parse expression (' name==' xqdfy ' );
standardevaluationcontextctx=newstandardevaluationcontext (;
使人员成为上下文的根对象
CTX.setrootobject (人员;
//在指定的上下文中计算表达式的值
system.out.println (exp.getvalue ) CTX,Boolean.class );
List list=new ArrayList (;
list.add(true;
evaluationcontextctx2=newstandardevaluationcontext (;
将list设置为evaluation上下文中的变量
CTX2.setvariable('list ',list );
更改list变量中第一个元素的值
parser.parse expression (' # list [0] ) ).setvalue ) CTX2,' false );
//list集合中的第一个元素被更改
system.out.println('list集合中的第一个元素是'
parser.parse expression (' # list [0] ) ).getvalue ) CTX2);
}
}
三测试结果
“HelloWorld”结果: HelloWorld
' HelloWorld'.concat ()! )。 结果: HelloWorld!
' HelloWorld'.bytes的结果: [B@14899482
' HelloWorld'.bytes.length的结果: 10
new string (' Helloworld '.toupper case ) )的结果是hello world
将persn作为root,name表达式的值是xqdfy
true
list集合的第一个元素是false
希望本文的描述对大家的java编程有帮助。