Struts 2.1.6精简实例系列教程(6):重写用户登录模块(整合Jquery+JSON) - 编程入门网
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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |