SSH+JqueryEasyUI整合,怎么才能把action处理过的数据转成json再传到前台的Ajax方法的?
SSH+JqueryEasyUI整合,怎么才能把action处理过的数据转成json再传到前台的Ajax方法的?下面几种方法都试过,是类型转换异常难道json包不是imp...
SSH+JqueryEasyUI整合,怎么才能把action处理过的数据转成json再传到前台的Ajax方法的?下面几种方法都试过,是类型转换异常 难道json包不是import net.sf.json.JSONArray;import net.sf.json.JSONObject;?要加额外包吗? 其实就想往前台传个记号去提示一下,不需要action跳转到别的页面去,而是在ajax方法里去实现跳转页面。
//Action的方法:=======================================
public String ajaxLogin() throws Exception { System.out.println("成功进入方法"); Json j = new Json(); Student s = studentService.findStudentByEntry(student); if (s != null) { j.setSuccess(true);// j.setMsg("登录成功!"); j.setObj(s);// System.out.println(j.toString()); List list = new ArrayList(); list.add(s); list.add(j); // JSONArray json = JSONArray.stringify(list); JSONObject jsonObject = new JSONObject().fromObject(j); ActionContext.getContext().getSession().put("student", s);// 保存用户 HttpServletResponse response = ServletActionContext.getResponse(); response.getWriter().write(jsonObject.toString()); } else { j.setMsg("用户名或密码错误!"); } return null;
}
Struts.xml配置:========================================<struts> <package name="Easyui" extends="json-default"> <action name="login" class="studentAction" method="ajaxLogin"> <result type="json"></result> </action> </package></struts> 展开
//Action的方法:=======================================
public String ajaxLogin() throws Exception { System.out.println("成功进入方法"); Json j = new Json(); Student s = studentService.findStudentByEntry(student); if (s != null) { j.setSuccess(true);// j.setMsg("登录成功!"); j.setObj(s);// System.out.println(j.toString()); List list = new ArrayList(); list.add(s); list.add(j); // JSONArray json = JSONArray.stringify(list); JSONObject jsonObject = new JSONObject().fromObject(j); ActionContext.getContext().getSession().put("student", s);// 保存用户 HttpServletResponse response = ServletActionContext.getResponse(); response.getWriter().write(jsonObject.toString()); } else { j.setMsg("用户名或密码错误!"); } return null;
}
Struts.xml配置:========================================<struts> <package name="Easyui" extends="json-default"> <action name="login" class="studentAction" method="ajaxLogin"> <result type="json"></result> </action> </package></struts> 展开
1个回答
展开全部
页面代码没问题,你的问题是在action里的要传递的数据有问题,你发送到页面的数据应该是Json格式的,它的形式应该是key:value这种,类似Map集合这种形式,所以在使用JSONObject的时候一般都是Map<String,Object>集合,使用JSONArray的时候一般是List<Map<String,Object>>,当然你也可以直接定义Json对象来传递,你的list里面又是json对象,又是student对象,完全转化不过来啊,建议你在查询数据库的时候使用spring的jdbc方法:JdbcTemplate的queryForList方法,返回的是一个List<Map<String,Object>>形式,很好用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询