Hibernate返回Action一个List结果集,需要循环遍历结果集,然后把每循环一条记录添加到Json数组中
/**
* 省级联动市级
* @return
*/
@SuppressWarnings("unchecked")
public String findCityKind_byProvinceId(){
Object [] obj = new Object[]{this.getAreaid()};
List middle = (List)this.getDepartmentService().findCityKind_byProvinceId(obj);
int count = middle.size();
selectOptions=new ArrayList<String>(count);
Iterator iterator = middle.iterator();
StringBuffer jsonString = new StringBuffer();
jsonString.append("[");
int i = 0;
while(iterator.hasNext()){
i++;
this.setBasArea((BasArea)iterator.next());//出现异常:[Ljava.lang.Object; cannot be cast to com.domain.basic.BasArea
jjsonString.append("{");
jsonString.append("areaId:");
jsonString.append("'"+this.getBasArea().getAreaid()+"'");
jsonString.append(",areaName:");
jsonString.append("'"+this.getBasArea().getShortareaname()+"'");
jsonString.append("}");
if(i < count){
jsonString.append(",");
}
}
jsonString.append("]");
selectOptions.add(jsonString.toString());
return SUCCESS;
}
这是升级下拉框联动市级下拉框的方法,异常部分是因为Hibernate采用的是SQLQuery执行方法。
想问问有没有其他方法循环遍历List,然后放到Json数组里?
/**
* 省级联动市级
* @return
*/
@SuppressWarnings("unchecked")
public String findCityKind_byProvinceId(){
Object [] obj = new Object[]{this.getAreaid()};
List middle = (List)this.getDepartmentService().findCityKind_byProvinceId(obj);
int count = middle.size();
selectOptions=new ArrayList<String>(count);
Iterator iterator = middle.iterator();
StringBuffer jsonString = new StringBuffer();
jsonString.append("[");
int i = 0;
while(iterator.hasNext()){
i++;
this.setBasArea((BasArea)iterator.next());//出现异常:[Ljava.lang.Object; cannot be cast to com.domain.basic.BasArea
jjsonString.append("{");
jsonString.append("areaId:");
jsonString.append("'"+this.getBasArea().getAreaid()+"'");
jsonString.append(",areaName:");
jsonString.append("'"+this.getBasArea().getShortareaname()+"'");
jsonString.append("}");
if(i < count){
jsonString.append(",");
}
}
jsonString.append("]");
selectOptions.add(jsonString.toString());
return SUCCESS;
}
这是升级下拉框联动市级下拉框的方法,异常部分是因为Hibernate采用的是SQLQuery执行方法。
想问问有没有其他方法循环遍历List,然后放到Json数组里?
public Object doInHibernate(Session session) throws HibernateException {
Object [] object = (Object [])obj;
String sql = "select AREAID,SHORTAREANAME from BAS_AREA T where t.arealevel = 2 and t.areaid like concat(?,'%') order by areaid";
SQLQuery query = session.createSQLQuery(sql);
query.setParameter(0, object[0]);
return query.list();
}
});
middle里存的就是从数据库BasArea表里查出来的结果集
JONArray 里可以放对象,之后再用他的toString()方法就可以得到你想要的结果了。
直接用struts2的json插件多方便呀。
就是不用sturts2,你看看net.sf.json.JSONArray
这个json框架