文本仪一个实例讲述了struts2+jquery实现ajax登陆的实现方法,具体步骤如下:
一、新建一个web项目,取名test。配置好struts2的环境,并导入Jquery的js文件到该项目。
二、在com.action包下,新建一个loginAction.java
loginAction.java的代码如下
package com.action; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import com.opensymphony.xwork2.ActionSupport; @Action("login") @ParentPackage(value = "json-default") @Results({ @Result(name = "success", type = "json", params = { "data", "flag" }), }) public class LoginAction extends ActionSupport { /** * */ private static final long serialVersionUID = 1751244794407005783L; private String flag; private String username; private String password; public String execute() { try { if (getUsername() == null || getUsername().trim().equals("")) { setFlag("用户名不能为空"); return SUCCESS; } else if (getPassword() == null || getPassword().trim().equals("")) { setFlag("密码不能为空"); return SUCCESS; } else if (getUsername().trim().equals("admin") && getPassword().equals("admin")) { setFlag("登陆成功"); return SUCCESS; } else { setFlag("用户名或密码错误"); return SUCCESS; } } catch (Exception e) { e.printStackTrace(); setFlag("登陆异常"); return SUCCESS; } } public String getFlag() { return flag; } public void setFlag(String flag) { this.flag = flag; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }
三、在WebRoot目录下新建index.jsp和success.jsp
index.jsp为登陆界面,success.jsp为登陆成功后跳转的界面。
index.jsp内容如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="https://www.atool.online/article/<%=basePath%>" rel="external nofollow" > <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <script type="text/javascript" src="https://www.atool.online/article/resource/js/jquery.min.js"></script> </head> <script type="text/javascript"> $(document).ready(function() { $(".loginButton").click(function() { var name = $("#username").val();//获取登陆用户名 var password = $("#password").val(); //获取登陆密码 $.post("login", { username : name, password : password }, callback, "json"); }); function callback(data) { var value=data.flag; if(value=="登陆成功"){ location.href="https://www.atool.online/article/success.jsp" rel="external nofollow" ; }else{ alert(value); } }); </script> <body> <input name="username" id="username" type="text" /> <input name="password" id="password" type="password" /> <button class="loginButton" class="btn btn-inverse">登陆</button> </body> </html>