关于JQuery easyUI的datagrid问题

河先森 2012-10-10 10:13:42
最近练手一个小项目,主要是ssh整合+jQuery easyUI做的界面,,问题描述:

通过jQuery提交登陆表单到action,然后action处理以后,返回一个字符串给前台,
public class UserAction extends ActionSupport {
private UserManager um;
private String result;//返回结果
public String login() {
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
String verify = request.getParameter("verify");
String sessionVerify = (String)session.getAttribute("verify");
if(sessionVerify!=null && !"".equals(sessionVerify)) {
if(!(sessionVerify).equals(verify)) {//验证码错误
setResult(Protocal.WRING);
}else {
String name = request.getParameter("name");
String pass = request.getParameter("pass");
String utype = request.getParameter("utype");
User user = new User(name, pass, utype);

if(um.isExist(user)){
session.removeAttribute("verify");//验证码从session中移除
session.setAttribute("user", user);//把user添加到session中
setResult(Protocal.SUCCESS);
}else {//用户名或密码错误
setResult(Protocal.FAILED);
}
}
}else {
setResult(Protocal.REMOVED);
}
return SUCCESS;
}

然后action的配置:
<action name="loginAction" class="userAction" method="login">
<result type="json">
<param name="noCache">true</param>
<param name="root">result</param>
</result>
</action>

这样,前台的回调函数就会获得到result的字符串,根据字符串进行判断。。


现在datagrid需要通过action获取数据,但是他需要的是json对象,,
<action name="getUser" class="userAction" method="getUser">
<result type="json">
<param name="noCache">true</param>
<param name="excludeProperties">um</param>
<!-- 上面的属性不进行序列化,返回JSON对象;如果配置root,返回一个字符串 -->
</result>
</action>
但是,这样返回后,datagrid无法获取到数据,,

求解决,谢谢。。。。。。。。



还有一个问题,通过action进行逻辑处理,,还需要获取HttpServletRequest 和session等,,这样做有什么意义呢???为什么不直接使用Servlet????

...全文
486 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
truelove1030 2013-08-21
  • 打赏
  • 举报
回复
早起鸟儿 2013-01-18
  • 打赏
  • 举报
回复
求解 话说页面怎么提交的啊!! 贴页面源码 啊!
河先森 2012-10-14
  • 打赏
  • 举报
回复
谢谢大家,问题解决了。。使用json-lib包里面的JSONObject类,,需要的可以百度json-lib-2.4-jdk15.jar,挺好用的。
河先森 2012-10-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
这个不就是datagrid想要的的吗 ?

哪里不对了呢
[/Quote]

datagrid要的是json对象,那么只是个字符串,,问题解决了。。。
swoky 2012-10-11
  • 打赏
  • 举报
回复
这个不就是datagrid想要的的吗 ?

哪里不对了呢
swoky 2012-10-11
  • 打赏
  • 举报
回复
{\"total\":20,\"rows\":[{\"id\":\"1\",\"username\":\"hys\",\"realname\":\"天堂口\","+
"\"sex\":\"男\",\"birthday\":\"1990-01-01\","+
"\"address\":\"安徽省\",\"title\":\"学生\",\"tel\":\"15111111111\",\"email\":\"hys@163.com\"}]}























河先森 2012-10-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
看你的 action

String sessionVerify = (String)session.getAttribute("verify");

没session怎么行

action就是一个servlet
[/Quote]


有session对象,只是没有贴出来,,
河先森 2012-10-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
<result type="json" name="abc"><param name="root">result</param></result>
name==Action方法结束后的return "abc";
[/Quote]

不懂什么意思,,麻烦解释一下,谢谢
河先森 2012-10-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
<action name="loginAction" class="userAction" method="login">
<result type="json">
<param name="noCache">true</param>
<param name="root">result</param>
</result>
</action>

这样返回一个json字符串就行了啊,da……
[/Quote]

我使用了struts的json插件,$.get()的回调函数返回来的是json对象,key是result,,我使用alert(data["result"])弹出的数据如下:
{\"total\":20,\"rows\":[{\"id\":\"1\",\"username\":\"hys\",\"realname\":\"天堂口\","+
"\"sex\":\"男\",\"birthday\":\"1990-01-01\","+
"\"address\":\"安徽省\",\"title\":\"学生\",\"tel\":\"15111111111\",\"email\":\"hys@163.com\"}]}
无法匹配jQuery easyUI的datagrid啊。。。。
弹指间锝旋律 2012-10-10
  • 打赏
  • 举报
回复

<result type="json" name="abc"><param name="root">result</param></result>
name==Action方法结束后的return "abc";
swoky 2012-10-10
  • 打赏
  • 举报
回复
看你的 action

String sessionVerify = (String)session.getAttribute("verify");

没session怎么行

action就是一个servlet
swoky 2012-10-10
  • 打赏
  • 举报
回复
<action name="loginAction" class="userAction" method="login">
<result type="json">
<param name="noCache">true</param>
<param name="root">result</param>
</result>
</action>

这样返回一个json字符串就行了啊,datagrid就能拿到数据了.

你说的datagrid需要json对象,跟返回字符串不冲突

action返回字符串后,jquery会先转化为json对象,然后datagrid用就行了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧