Gwt 我想从AdvancedCriteria获取值

Gwt 我想从AdvancedCriteria获取值,gwt,smartgwt,Gwt,Smartgwt,我想从AdvancedCriteria获取值 我的代码是这样的 现在如何从对象中检索值? 您是如何从标准中获取值的 AdvancedCriteria cr = filterBuilder.getCriteria(); JavaScriptObject jso = cr.getJsObj(); Map map = cr.getValues(); Set keys = map.keySet(); Iterator it = keys.iterator(); while( it.hasNext()){

我想从AdvancedCriteria获取值 我的代码是这样的 现在如何从对象中检索值? 您是如何从标准中获取值的

AdvancedCriteria cr = filterBuilder.getCriteria();
JavaScriptObject jso = cr.getJsObj();
Map map = cr.getValues();
Set keys = map.keySet();
Iterator it = keys.iterator();
while( it.hasNext()){
String key = it.next().toString();
system.out.println("=> "+map.get(key));
}


Out put  
 => AdvancedCriteria               
 => and              
=> [object Object] 

要打印带有内部标准和高级标准的高级标准,可以执行以下操作:

public void onClick(ClickEvent event) {
    AdvancedCriteria crit = filterBuilder.getCriteria();
    printCriteria(crit, 0);
}

public void printCriteria(AdvancedCriteria ac, int level) {
    char[] indentArray = new char[level];
    Arrays.fill(indentArray, '\t');
    String indent = new String(indentArray);

    OperatorId operator = ac.getOperator();
    Criteria[] c = ac.getCriteria();
    for (int i = 0; i < c.length; i++) {
        if (c[i].isAdvanced()) {
            System.out.println(indent + "(");
            printCriteria(c[i].asAdvancedCriteria(), level + 1);
            System.out.println(indent + ")");
        } else {
            System.out.println(indent + 
                c[i].getAttributeAsString("fieldName") + " " +
                c[i].getAttributeAsString("operator") + " " +
                c[i].getAttributeAsString("value"));
    }
    if ((i + 1) < c.length) {
        System.out.println(indent + operator);
    }
}
public void onClick(单击事件){
AdvancedCriteria crit=filterBuilder.getCriteria();
打印标准(crit,0);
}
公共无效打印标准(高级标准ac,内部级别){
字符[]缩进数组=新字符[级别];
数组。填充(缩进数组,'\t');
字符串缩进=新字符串(缩进数组);
运算符ID运算符=ac.getOperator();
条件[]c=ac.getCriteria();
for(int i=0;i