Ognl后台取值
这里的后台取值是指用在java代码中,众所周知,struts有一个插件struts-json-plugin.他支持以Ognl表达式获取数据.现在由于业务需要,也需要这样一个功能.但不知道该用什么方法.
//根据配置文件查找指定属性并加入响应实体内容集合
private Object getResponseData(ActionInvocation acation){
if(this.data==null)return null;
String[] objNames=this.data.split(",");
for(String name:objNames){
Object value=null;
//如果参数名代有#号,表示要从context中获取数据
if(name.indexOf("#")==0){
try {
Map<String,Object> map=Ognl.createDefaultContext(ServletActionContext.getContext().getSession());
//****这里取不到相应的值.不知道该用什么方法.
value=Ognl.getValue(name,map, "");
} catch (OgnlException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
//*******root中能取到相应的值
value=acation.getStack().findString(name);
}
System.out.println(name+":"+value);
//加入到响应内容列表
if(value!=null)this.datelist.add(value);
}