弄了一整天了,刚开始学习Jquery,很多东西还不熟,看看视频,查查资料,终于成功的集成Struts2+Jquery+Json
直接上图:用户名输入xxx,焦点丢失,提示”用户已存在“,否则提示“可以注册“,密码同样如此,
首先需要导包:如下除了struts2必须的包外,还有json包以及涉及的commons的几个包.
此外要下载Jquery的js文件,然后部署到下图位置,当然位置可以任意,
之后就开始我们的ajax之路吧
1.首先是index源代码:其中涉及Jquery的语法,自己去查api
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
#login {
width:410px;
margin:auto auto;
margin-top:71px;
background-color:gray;
}
#name {
font-size:14px;
color:red;
}
#pass{
font-size:14px;
color:red;
}
</style>
<script type="text/javascript" src="Jquery/jquery-1.4.2.js"
mce_src="Jquery/jquery-1.4.2.js"></script>
<script type="text/javascript">
$(document).ready( function() {
//使用 Ajax 的方式 判断登录
$("#userName").blur( function() {
var url = 'login.action';
//获取表单值,并以json的数据形式保存到params中
var params = {
userName:$("#userName").val(),
password:$("#password").val(),
}
//使用$.post方式
$.post(
url, //服务器要接受的url
params, //传递的参数
function callback(data){ //服务器返回后执行的函数 参数 data保存的就是服务器发送到客户端的数据
//alert(data);
var member = eval("("+data+")"); //包数据解析为json 格式
if(member.name=="yes"){
$('#name').html("用户已存在!");}
else{
$('#name').html("可以注册!");
}
},
'json' //数据传递的类型 json
);
});
$("#password").blur( function() {
var url = 'login.action';
//获取表单值,并以json的数据形式保存到params中
var params = {
loginName:$("#userName").val(),
password:$("#password").val(),
}
//使用$.post方式
$.post(
url, //服务器要接受的url
params, //传递的参数
function callback(data){ //服务器返回后执行的函数 参数 data保存的就是服务器发送到客户端的数据
//alert(data);
var member = eval("("+data+")"); //包数据解析为json 格式
if(member.pass=="no"){
$('#pass').html("密码不正确!");}
else{
$('#pass').html("可以注册!");
}
},
'json' //数据传递的类型 json
);
});
});
</script>
</head>
<body>
<div id="login">
<table>
<tr>
<td>
<span>用户名:</span>
</td>
<td>
<input type="text" id="userName" name="userName" style="width:170px;">
</td>
<td>
<div>
<span id="name"></span>
</div>
</td>
</tr>
<tr>
<td>
<span>密码:</span>
</td>
<td>
<input type="password" name="password" id="password" style="width:170px;">
</td>
<td>
<div>
<span id="pass"></span>
</div>
</td>
</tr>
<tr>
<td colspan="3">
<input type="button" value="注册" />
</td>
</tr>
</table>
</div>
</body>
</html>
2.然后就是我们的Action,具体位置如上图。
package com.ajax.demo;
import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONObject;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
// 用户Ajax返回数据
private String result;
// struts的属性驱动模式,自动填充页面的属性到这里
private String userName;
private String password;
@Override
public String execute() {
// 用一个Map存储数据
Map<String, String> map = new HashMap<String, String>();
// 为map添加一条数据,记录页面传过来userName
map.put("userName", this.userName);
if("xxx".equals(userName)){
map.put("name","yes");//如果用户名xxx则提示已存在,否则可以注册
}else {
map.put("name", "no");
}
if("xxx".equals(password)){
map.put("pass","yes");//如果密码xxx则可以注册,否则密码不正确
}else {
map.put("pass", "no");
}
// 将要返回的map对象进行json处理
JSONObject jo = JSONObject.fromObject(map);
// 调用json对象的toString方法转换为字符串然后赋值给result
this.result = jo.toString();
return SUCCESS; }
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
3.我们必不可少的web.xml,相信大家都知道,
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
4. 接下来最后一步 我们的struts.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="ajax" extends="json-default">
<action name="login" class="com.ajax.demo.LoginAction">
<!-- 返回类型为json 在sjon-default中定义 -->
<result type="json">
<!-- root的值对应要返回的值的属性 -->
<!-- 这里的result值即是 对应action中的 result -->
<param name="root">result</param>
</result>
</action>
</package>
</struts>
OK,今天就写到这里了,可以睡觉了.明天继续java.
分享到:
相关推荐
"Struts2+JSON+jQuery实现Ajax数据的存取"就是一个典型的示例,它结合了强大的MVC框架Struts2、轻量级的数据交换格式JSON以及高效的前端库jQuery,以实现网页上的无刷新数据交互。下面将详细介绍这三个技术及其在...
8. 实例演示:使用Struts2+Jquery+Ajax实现动态加载数据或表单验证 "struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必...
6. **实现JSON返回**:在Struts2 Action中,使用`ValueStack`或`ActionContext`将验证结果转化为JSON对象,然后设置结果类型为JSON,让Struts2自动处理JSON响应。 7. **测试**:启动Tomcat服务器,访问JSP页面,...
Struts2JQueryJson是一个基于Struts2框架的项目,主要展示了如何在前端使用JQuery库来处理由后台返回的JSON格式数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便...
总结起来,"struts2+jquery+json+ajax"的例子展示了如何利用这些技术协同工作,实现一个无刷新的登录界面,提供流畅的用户体验。通过Struts2处理业务逻辑和数据验证,jQuery和Ajax负责前后端的通信,JSON作为数据...
- 使用jQuery的`$.ajax()`或`$.getJSON()`方法发送异步请求,参数包括URL(指向Struts2 Action)、数据(通常是用户名)、回调函数等。 2. **Struts2 Action配置**: - 创建一个Struts2 Action类,比如`...
这个"Struts2 JQueryJson例子 .rar"压缩包很可能是包含了一个实际的项目实例,演示了如何在Struts2框架中利用JQuery和JSON进行数据交互。下面将详细讲解Struts2、JQuery和JSON的相关知识点: 1. **Struts2框架**: ...
总结来说,通过这种方式,我们可以利用AJAX向Struts2 Action传递JSON数组,实现异步数据交互。这在动态更新页面内容、处理表单提交等场景下非常有用。同时,使用JSON作为数据交换格式,使得前后端的数据交换变得更加...
### Struts2、JSON与jQuery实现Ajax登录与注册功能详解 在现代Web开发中,实现高效、实时的用户交互已成为核心需求之一。Struts2框架以其强大的MVC架构能力,结合JSON数据交换标准以及jQuery库的灵活性,为构建动态...
应用struts2 jquery json简单小例子。可编译,可执行,可看效果。注释很详细。包也很齐全。 1,表单提交。怎么来回传递值的(包括字符串,对象,集合),解析json。 2,ajax提交,操作字符串,对象,数组。
在本实例中,我们将探讨如何利用Struts2、jQuery、Ajax和JSON技术实现一个用户登录功能。 首先,我们需要理解Ajax的核心概念,即在不刷新整个页面的情况下,向服务器发送异步请求并获取数据。这极大地提升了用户...
综上所述,这个例子展示了如何使用 Struts2 处理后端逻辑,通过 JSON 将数据传递给前端,然后利用 jQuery 和 AJAX 实现无刷新的交互体验。这种组合在现代 web 开发中非常常见,能够有效提升应用的性能和用户体验。
标签中的“源码”可能是指Struts2和JSON的整合涉及到的源代码编写,而“工具”可能指的是开发过程中使用的IDE、构建工具(如Maven或Gradle)和其他辅助开发的库,如jQuery或其他的Ajax库。 在实际项目中,使用...
- **Struts2的JSON插件**:虽然题目要求不使用JSON,但通常情况下,Struts2通过JSON插件返回数据给jQuery是最方便的方式。不过,我们可以通过设置Content-Type为"text/plain"或"text/html",让Struts2返回非JSON...
在IT领域,特别是Web开发中,Struts2与jQuery的结合使用是实现动态网页和Ajax功能的常见方式。本文将详细解析如何通过Struts2框架整合jQuery来实现Ajax功能,具体涉及的知识点包括:Struts2框架基础、jQuery库的应用...
总的来说,Struts2的JSON插件大大简化了基于JSON的Web服务开发,使得Java开发者能够轻松地在Struts2框架内处理JSON数据,实现了前后端的高效通信。了解并熟练掌握这一插件的使用,对于提升Java Web应用的开发效率和...
2. **Ajax请求**:Ajax请求通常包含URL(指向Struts Action的路径)、数据(可能以JSON格式封装)和回调函数。jQuery的`$.ajax()`或`$.getJSON()`方法可以方便地实现这一功能。 3. **Struts后台处理**:在Struts...
在Struts2中,我们可以使用JQuery的Ajax方法(如`$.ajax()`或`$.post()`)发送异步请求,提交表单数据到服务器,同时获取JSON响应。 整合步骤如下: 1. **配置Struts2**: 首先,确保你的项目已经引入了Struts2的...
在这个"struts2+ajax+jquery"的主题中,我们将深入探讨如何利用Struts2、jQuery和Ajax技术实现Web页面的异步交互。 首先,Struts2作为MVC框架,它的核心是Action,它负责处理用户的请求,并通过配置的Result返回...
2. **Ajax请求**:使用jQuery的$.ajax()方法,设置URL为服务器端的验证接口,通常是一个Struts Action。请求类型(type)设为"POST"或"GET",根据服务器端的需求。将输入框中的用户名值作为数据(data)发送到服务器...