基于SSH框架搭建个小网站,登陆框用jquery实现,前台一直得不到action返回的值。不是undefined就是null。具体代码如下:
Action:
public class LoginAction extends ActionSupport { private String userName; private String password; private String loginResult; protected UserManage umanage; public String execute() throws Exception{ if(userName.equals("") || userName == null){ loginResult="用户名不能为空"; return ERROR; } else if(password.equals("") || password == null){ loginResult="密码不能为空"; return ERROR; }else{ String result = umanage.validLogin(userName, password); if(result != null){ loginResult = result; return ERROR; } } return SUCCESS; }
jsp:
<form class="login-form" style="width: 400px" action="login" method="post" enctype="multipart/form-data"> <div class="input-group"> <span class="icon-user2 input-group-addon" style=" color: #b2bcc5;background-color: #ffffff"></span> <input id="userName" name="userName" type="text" class="form-control" placeholder="用户名"/> </div> <div style="height: 15px"></div> <div class="input-group"> <span class="icon-lock2 input-group-addon" style=" color: #b2bcc5;background-color: #ffffff"></span> <input id="password" name="password" type="password" class="form-control" placeholder="密码" > </div> <div class="input-group" style="display:none" id="warning"> <span id="warning1"></span> </div> <div class="input-group"> <label class="checkbox" for="checkbox1"> <input type="checkbox" id="checkbox1" data-toggle="checkbox"> 记住密码 <a href="#" style="position: relative;left:170;">忘记密码?</a> </label> </div> <button id="login" onclick="testLogin()" type="button" class="btn btn-primary" style="width: 353px">登录</button> </form> <script type="text/javascript"> $("#login").click(function(){ var params = { userName : $("#userName").val(), password : $("#password").val() }; $.ajax({ type : "POST", url : "login", data : params, dataType : "json", //ajax返回值设置为text(json格式也可用它返回,可打印出结果,也可设置成json) success : function(json) { $("#warning1").each(function(){ $(this).html(json); }); $("#warning").show(); }, error:function(json){ alert(json); return false; } }); }); </script>
struts.xml
<package name="UserAction" namespace="/" extends="json-default"> <action name="login" class="loginAction" > <result type="json"> <param name="root">loginResult</param> </result> </action
测试的不输入用户名密码,或是密码错误等情况的时候,都会提示错误信息。但是每次都没有任何信息,所以就在error时直接抛出,结果每次出现undefined或是null。
错误的原因是:我对jquery的success和error理解错了,这里的不是我们在action里定义的return的情况,二是它前台自身出现的结果。而我们对不同输入return不同的结果,对于jquery来说,如果都能捕获的话都属于success情况,而不是error。而我们在action里返回error时会给jquery造成误解。
所以有两种修改方式:
一、我们可以修改struts配置文件
<action name="login" class="loginAction" > <result name="error" type="json"> <param name="root">loginResult</param> </result> <result name="success">/index.jsp</result> </action>
把error当作返回的类型,不是告诉前台出现错误,因为我们在action里定义的error只是一种返回的情况,而不是出现了错误。这样jquery就能在success里得到loginResult的值,并显示出来。
二、可以修改action里return的值,把error改成其他的值,input或是"ssss"其他的string类型值,这样jquery捕获action时就不会把它当作error情况处理了,而是success或是done,这样也能正确得到json值。
相关推荐
在Web开发领域,jQuery是一个广泛使用的JavaScript库,它极大地简化了DOM操作...它使得前端开发者能更专注于业务逻辑,而不是数据获取和解析的底层细节。在现代Web开发中,熟练掌握这一技能对于提升开发效率至关重要。
本文介绍了如何在jQuery中通过AJAX请求从后台获取JSON格式的数据,并将这些数据动态地渲染到HTML中去。具体的知识点可以分为以下几个方面: 1. jQuery的AJAX方法:在文章中,通过使用jQuery提供的$.ajax()方法来...
在前端应用中,我们经常从服务器获取JSON格式的数据,然后在客户端进行处理。 jQuery是一个强大的JavaScript库,提供了丰富的API来简化DOM操作、事件处理、动画效果以及Ajax交互。在处理表单数据时,jQuery的`...
本案例将深入探讨如何使用jQuery来获取JSON数据并实现分页功能,这对于网页应用的数据展示至关重要。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于...
在示例中,返回的JSON数据是一个二维数组,形如`[{key,val},{key,val},{key,val}]`。这种格式表示一个数组,其中每个元素本身又是一个键值对的对象。在JavaScript中,可以方便地遍历和操作这些数据。 在JQuery中,...
用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里...
本篇文章将深入探讨如何使用jQuery的$.each函数来获取并处理JSON数据。 首先,我们需要了解JSON(JavaScript Object Notation),这是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON...
jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换...
console.log('数据获取成功'); }).fail(function() { console.log('数据获取失败'); }); ``` 在这个例子中,`$.getJSON()`向服务器发送请求,获取名为"data.json"的资源,然后将返回的JSON数据作为回调函数的参数...
$.getJSON是JQuery中处理JSON数据常用的一个方法,它用于从服务器获取JSON格式数据,并且可以指定当成功接收到数据时执行的回调函数来处理这些数据。 首先,了解JQuery库是学习$.getJSON方法的前提。JQuery是一个...
在jQuery的基础上,`jquery.json2xml.js` 和 `jquery.xml2json.js` 这两个脚本提供了方便的方法来在JSON和XML之间进行转换,从而让开发者无需深入了解这两种格式的复杂性,就能轻松地在它们之间进行数据互换。...
在本文中,我们将探讨两种在Struts2框架中返回JSON数据的方法。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端交互,尤其是在AJAX请求中。Struts2提供了一套方便的机制来支持JSON...
在获取 JSON 数据时,`dataType` 应设置为 `"json"`,这样 jQuery 就会自动将返回的数据解析为 JavaScript 对象。 #### 5. 数据类型转换和URL编码 当通过 Ajax 传递数据时,如果数据参数(`data`)是一个对象,...
标题 "jquery跨域获取json" 涉及到的是JavaScript中的一个常见问题,即如何在浏览器环境中使用jQuery库跨越域限制获取JSON数据。这通常涉及到AJAX请求和JSONP(JSON with Padding)技术。 首先,我们需要理解Web...
本篇文章将详细讲解如何使用jQuery访问Web服务并处理返回的JSON数据,特别是涉及复合类型和集合的情况。这对于构建跨平台应用,如Android的PhoneGap框架与服务器交互,尤其重要。 首先,理解jQuery的核心概念。...
本文将深入探讨如何处理jQuery-autoComplete插件在接收到JSON对象返回数据时可能遇到的问题。 `jQuery-autoComplete` 是jQuery UI的一个插件,它允许我们为输入框提供动态的下拉建议。这个功能通过监听用户输入并...
在这个"struts2+jquery执行ajax并返回json类型数据"的示例中,我们将探讨如何通过Ajax技术在后台Struts2框架与前端jQuery库之间交换JSON格式的数据。 首先,Struts2是一个强大的MVC(Model-View-Controller)框架,...
在本文中,我们将深入探讨如何使用jQuery和JSON来动态获取并显示表格数据。这个主题主要集中在利用jQuery的灵活性和JSON的轻量级数据交换格式,为网页中的表格提供动态加载和交互功能。以下是对给定标题和描述的详细...
Struts2.1.8.1与jQuery1.4.2结合实现JSON数据返回的知识点主要涉及以下几个方面: 1. **Struts2框架**:Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web开发框架,它在Struts1的基础上进行了很多...
这里的"Ajax + jQuery跨域获取JSON"是一个典型的Web开发技术应用场景,主要用于解决Web应用程序中不同源之间的数据共享问题。在本案例中,开发者成功地实现了跨域请求以获取JSON数据,并将这些数据用于展示天气预报...