使用json实现查询条件传回Action进行hql语句拼接查询实现在结果中查询功能在datagrid中显示查询结果

1.在浏览器端使用javascript脚本把用户每次的查询选择保存到key和value数组中去保存下来:

var key=new Array(10);
var value=new Array(10);

for(var i=0;i<10;i++){

       if(key[i]==undefined){

          key[i]=$('#simpleSearch').combobox('getValue');

          value[i]=v;

          index=i;

           break;

       }

}

//json形式

var params={ a:[key[0],key[1],key[2],key[3],key[4],key[5],key[6],key[7]],

                         b:[value[0],value[1],value[2],value[3],value[4],value[5],value[6],value[7]] };

tt.datagrid('load',{

                    key: $('#simpleSearch').combobox('getValue'),
                    value: v,
                    //JSON.stringify(testJson):把json过滤成字符串
                   keyParams: JSON.stringify(params),   
                   index: index

                   }); 

2.在Action中解析浏览器端传过来的json格式的数据进行解析,把解析出来的数据保存到对应数组中。

private int index=-1;    //判断是否是在结果中查询

private String keyParams;   //从浏览器传到Action中的Json格式的字符串数据

private JSONArray arrayKey;    //把Json中的数据解析成数组数据

private JSONArray arrayValue;

//解析前台传过来的json
public void jsonToObject()
{
        JSONObject jb=new JSONObject();
        arrayKey=jb.fromObject(keyParams).getJSONArray("a");   //查询条件数组
        arrayValue=jb.fromObject(keyParams).getJSONArray("b"); //查询条件对应的值的数组
        if(arrayKey!=null) {
            for(int i=0;i                   System.out.println("arrayKey.get("+i+")="+arrayKey.get(i));
                 System.out.println("arrayValue.get("+i+")="+arrayValue.get(i));
            }
       }    

}

3.拼接hql语句实现查询


你可能感兴趣的:(SSH,Ajax)