Struts2+Jquery+Json实现用户登陆

6 篇文章 0 订阅

用Struts2、Jquery和Json实现用户登录。重点在如下两个地方:
(1)Struts2与JSON集成的配置
(2)Jquery处理JSON返回的数据

首先到以下网址http://code.google.com/p/jsonplugin/downloads/list下载JSON插件的JAR包,并将其加入到/WEB-INF/lib下。

1、Struts.xml 文件

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="struts2_login" extends="json-default">
       <action name="login" class="org.njy.action.LoginAction">
           <result type="json"></result>
       </action>
    </package>
</struts>

在这里不在继承struts-default,而是采用继承json-default。其xml代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="json-default" extends="struts-default">
        <result-types>
            <result-type name="json" class="com.googlecode.jsonplugin.JSONResult"/>
        </result-types>
        <interceptors>
            <interceptor name="json" class="com.googlecode.jsonplugin.JSONInterceptor"/>
        </interceptors>
    </package>
</struts>

2、Action类

package org.njy.action;

import org.njy.bean.Admin;
import com.opensymphony.xwork2.Action;

public class LoginAction {
    private Admin admin;
    private String message;

    public String execute() throws Exception {
    if("njy".equals(admin.getUsername()) & "njy".equals(admin.getPassword())){
           message = "登陆成功!";
       }else {
           message = "用户名/密码有误!";
       }
       return Action.SUCCESS;
    }

// 省略get/set方法
}

 

3、页面代码:

<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
     <title>Struts2——loign</title>
     <SCRIPT type="text/javascript" src="js/jquery.js"></script>
     <SCRIPT type="text/javascript" src="js/login.js"></SCRIPT>
  </head> 

  <body>
       <div id="msg"></div>
        username:<input name="admin.username" id="username" type="text"/><br/>
        password:<input name="admin.password" id="password" type="password"/><br/>
       <input type="submit" id="submit"  value="login">
  </body>
</html>

4、Login.js

$(document).ready(function() {
    // 直接把onclick事件写在了JS中
    $("#submit").click(function() {
       $.ajax({          
           url : "login.action", // 后台处理程序
           type : "post", // 数据发送方式
           dataType : "text", // 接收数据格式
           data : "admin.username="+$("#username").val()+"&admin.password="+$("#password").val(), // 要传递的数据

            // 回传函数
            timeout:20000,// 设置请求超时时间(毫秒)。
            error: function () {//请求失败时调用函数。
                  $("#msg").html("请求失败!");
            },  

            success:function(data){ //请求成功后回调函数。
                var dataObj=eval("("+data+")");//转换为json对象
                $("#msg").html(dataObj.message);
                alert("用户名:"+dataObj.admin.username+",密码:"+dataObj.admin.password);
            }
       });
    });
});

如果接收数据dataType的值为“json”,就不用对返回值进行eval()处理了,因为它已经是json格式的了。那么最后几句代码应该改为:
success:function(data){ //请求成功后回调函数。
$("#msg").html(data.message);
alert("用户名:"+dataObj.admin.username+",密码:"+dataObj.admin.password);
}

转自:http://xiaopihai.javaeye.com/blog/440027

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值