Struts2用AJAX实现JSON插件的使用

AJAX的详细描述就不做介绍了,大家基本都懂这个。

下面我们会通过两个具体的案例,来做具体的实现:

案例一:

案例描述:输入用户名,把用户名通过AJAX异步传输的方式发送至后台,判断此用户名是否存在。

第一步,我们需要导入这三个jar包:commons-lang3-3.1.jar、struts2-json-plugin-2.1.8.1.jar、xwork-core-2.1.6.jar,然后还有Struts2的几个基本jar包

第二步,还要导入jQuery的配置文件:jquery-1.8.0.min.js(PS:这里需要注意的一点是:xwork-core-2.1.6的jar包必须是这个2.1.6左右版本的,不然会出现一个异常)

这是这个案例的目录视图:

因为MyEclipse的版本原因,会在jquery的配置文件前边打了个叉,这个不用管。

第三步,我们就要开始具体的编码了:

首先,我们需要建立一个Demo1.jsp文件,用来发送注册数据(存放位置请看上图):

<span style="font-size:14px;"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>注册</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="${pageContext.request.contextPath }/jquery/jquery-1.8.0.min.js"></script>
	<script type="text/javascript">
		$(function(){  /* 这表示在页面加载的时候自动调用里边的方法 */
			$("#username").blur(function(){ /* 这里表示在id=username的文本框失去焦点时候调用function()方法 */
				$.post(
					"${pageContext.request.contextPath}/checkUserName.action", //这是URL
					{"username": $("#username").val()},  //这是数据
					function(data){   //data是从后台返回回来的数据的集合
						if(data.isExist){
							$("#result").html("<font color='red'>用户名已经存在</font>");
						}else{
							$("#result").html("<font color='green'>用户名不存在</font>")
						}
					}
				);	//这是AJAX传输数据的方法$.post()
			})
		})
	</script>

  </head>

  <body>
    <h1>判断用户是否存在</h1>
    <form>
    	用户名:<input type="text" name="username" id="username" /><span id="result"></span><br>
    	密码:<input type="password" name="password" id="password" />
    	<input type="submit" value="注册" />
    </form>
  </body>
</html>
</span>

接下来,我们需要配置struts.xml文件:

<span style="font-size:14px;"><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<package name="myjson" extends="json-default" >   <!-- 这里必须要继承json-default类 -->
		<action name="checkUserName" class="cn.action.CheckUserNameAction" method="execute">
			<result type="json"></result> <!-- 因为这里不是用result返回具体的视图,而是要返回json数据,所以这里的type是json -->
		</action>
	</package>

</struts>
 </span>

最后,我们需要的就是要写一个Action类了:CheckUserNameAction

<span style="font-size:14px;">package cn.action;

import java.util.ArrayList;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

public class CheckUserNameAction extends ActionSupport{
	private List<String> existName = new ArrayList<String>();

	public CheckUserNameAction(){
		//因为仅仅演示AJAX,所以这里假设existName是数据库用户的集合,然后添加了两个数据
		existName.add("zhangsan");
		existName.add("lisi");
	}

	@Override
	public String execute() throws Exception {
		if(existName.contains(username)){
			//这个名字不能被注册,因为数据库有这个名字
			isExist = true;
		}else{
			//这个名字可以被注册,因为数据库没有这个名字
			isExist = false;
		}
		return SUCCESS;
	}

	private String username;  //这里用来接收前台传来的数据
	public void setUsername(String username) {
		this.username = username;
	}

	private boolean isExist;
	public boolean getIsExist(){ //这里用来返回用户是否可以注册
		return isExist;
	}

}
</span>

上边已经做完了,这时候我们就需要验证了:

输入:http://localhost:8080/book/json/Demo1.jsp

然后,在用户名输入:zhangsan,会出现下图的情况:

案例一介绍结束。

时间: 2024-11-11 20:29:14

Struts2用AJAX实现JSON插件的使用的相关文章

13-struts2中json插件使用

struts2中怎样处理异步提交(ajax) 1.原始: HttpServletResponse response = ServletActionContext.getResponse(); response.getWriter().write("hello " + msg); response.getWriter().close(); 2.可以使用struts2中提供的json插件 1.导入json插件包 在struts2的lib包下 struts2-json-plugin-2.3.

Struts2之—集成Json插件实现Ajax

   上篇博客介绍了Struts2中自定义结果集实现Ajax,也分析了它的缺点:这样自定义的结果集,写死了,不能做到客户端需要什么数据就传什么数据:Struts2之-自定义结果集实现ajax 本篇博客提出Struts2的集成Json插件,很好的解决了自定义结果集带来的问题. 一,引题 1,Json数据格式简介 因为JSON是脱离语言的理想的数据交换格式,所以它被频繁的应用在客户端与服务器的通信过程中,这一点是毋庸置疑的.而在客户端与服务器的通信过程中,JSON数据的传递又被分为服务器向客户端传送

struts2之json插件

1.引入json插件包 <!-- 引入struts2的json插件 -->     <dependency>         <groupId>org.apache.struts</groupId>         <artifactId>struts2-json-plugin</artifactId>         <version>${struts.version}</version>     </

Struts2.5 利用Ajax将json数据传值到JSP

AJAX +JSON=>JSP AJAX AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面. JSON JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范

Struts2使用JSON插件实现异步刷新功能

1.说起这个Json插件实现异步刷新的功能折腾了我两天了,本想使用Juery来实现,可是在Jsp页面中始终无法获取json数据,最终无奈之下只能选择了最原始的方式. 2.首先是需要加载struts2-json-plugin-2.3.20.1.jar(因为我用的struts的版本是2.3.20.1)到项目中,接下来就是配置struts.xml配置文件了,而在这个过程中我有遇到一个非常烦恼的事,就是在我配置json的时候,需要继承json-default,始终都报错,这个问题已经在我之前的博客"SS

MyEclipse下struts2配置使用和Ajax、json的配合

原创文章,转载请注明:MyEclipse下struts2配置使用和Ajax.json的配合 新手,初学struts2的配置,同时尝试与Ajax通过json交互.首先介绍MyEclipse下struts2的配置. 1.struts2的配置 右键项目,MyEclips->project facets->install apache struts(2.x)facets URL pattern我选择了*.action,libraries只选择了core 1.1撰写action 新建package,名为

struts2 JSON 插件的使用

1. 导入包: json-lib-2.3-jdk15.jar struts2-json-plugin-2.3.15.3.jar 2. 在struts.xml中修改配置如下: <package name="default" namespace="/" extends="json-default"> <global-results> <result name="ajax" type="jso

【Struts2】Json插件使用

一.使用步骤 1.1 引入依赖 1.2 在struts.xml文件中配置 一.使用步骤 1.1 引入依赖 <!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-json-plugin --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-json-plugin</arti

博客:Struts2与ajax整合之缺点

之前有篇博客介绍了Struts2与ajax的整合,链接Struts2之-集成Json插件实现Ajax 这里不再累述,看以上博客. 此篇博客想吐槽一下Struts2的缺点--错误处理做的不好,怎么做的不好,哪里做的不好,通过Struts2中Ajax的应用缺陷来介绍. 先提出它的缺点,后面再做出证明. 1,Struts2与Ajax整合的缺点 无论采用$.post还是$.ajax都捕获不到服务器产生的错误($.ajax捕获错误在servlet能做到),是struts2内部设计的不好,不是Ajax的问题