快速业务通道

Struts 2.1.6精简实例系列教程(6):重写用户登录模块(整合Jquery+JSON) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
     User user = UserManager.selectUserByLoginName(loginName); //查询是否有用户名存在          if(user==null){              //此时的JSON对象,有两个属性suc和msg,其中suc表示是否登录成功的状态              json = "{suc:0, msg:''用户名不存在''}"; //构造JSON格式的字符串          } else if( ! password.equals(user.getPassword())){              json = "{suc:0, msg:''密码不正确!''}";          } else {              json = "{suc:1, msg:''登录成功!''}";          }          sendMsg(json); //发送JSON格式的字符串回JS端      }      /** *//**       * 向客户端的JS发送字符串       * @param content 发送的内容       * @throws IOException       */      public void sendMsg(String content) throws IOException{          HttpServletResponse response = ServletActionContext.getResponse();          response.setCharacterEncoding("UTF-8");          response.getWriter().write(content);      } }

Struts 2.1.6精简实例系列教程(6):重写用户登录模块(整合Jquery+JSON)(3)

时间:2011-01-20 BlogJava 心梦帆影

我们说过了,JS与Action互相传送的是JSON格式的字符串,故在LoginAction里,我们定义了private String json这个成员属性及其getter和setter方法。

大家注意,在valid方法体中,引进了org.json.JSONObject,这个类哪里来?请看:http://www.json.org/java/index.html,这里有几个处理JSON数据常用的类:JSONObject.java,JSONArray.java,JSONStringer.java,JSONWriter.java,JSONTokener.java,JSONException.java,JSONString.java,将它们下载下来,放到项目中,如下:

或者,打成jar包,放到项目lib目录下。我们就可以使用JSON类库提供给我们的方法了。

网上有另一个JSON的类库:json-lib,大家也可下载使用一下,不过,它要引进几个其他的jar包,详细请见http://json-lib.sourceforge.net/。个人使用它的感受,也真有点郁闷,测试它时,想找一个从JSON字符串转换成JSON对象的方法,找了半天也没找到。不过,它对Java的Bean,Map,List等与JSONObject的互转换做得还好。

sendMsg方法,是从Struts的Action中调用回原生Servlet的response来向浏览器端发送数据。

还有一点,大家应该注意到,我们在LoginAction中写的valid方法返回类型是void型的,跟我们以前做的返回 “success”、”input”之类的String类型不同。当我们通过 “!valid”来方法它时,它不作跳转,而是像我们平时Servlet中那种直接显示HTML类似。这一点达成了Ajax与Struts的成功交互。而网上许多写jsonplugin插件使用的文章,所调用的方法都是返回String类型,然后,再来个<result type=”json”>,那样感觉挺麻烦的,不如直接让Ajax发来的请求与void类型的方法交互,不直接爽快?

好,让我们运行一下,看看效果吧:

Struts 2.1.6精简实例系列教程(6):重写用户登录模块(整合Jquery+JSON)(4)

时间:2011-01-20 BlogJava 心梦帆影

大家看看fireFox的debug的控制台中显示的:

好,我们来输入一个正确的账号和密码,如下:

点确定后,网页就跳到了后台主页。

这样,Ajax(Jquery)与Struts2.1.6的交互,通过JSON格式的字符串传递数据,这一实践就完成了。有一点需要说明一下:本

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号