struts2中使用ajax

原创 2013年12月04日 10:10:47

为了写一个struts2配合使用的ajax,的确是花了不少心思,总是提出各种各样的问题,究其原因是——包冲突;因为自己配置的jar是很久以前的,所以很多包都不支持,因此自己在网上下载了最新想版本 struts-2.3.7,将需要的包放在附件中,废话不多说了,开始整理ajax吧

 

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC

  "-//Apache Software Foundation//DTD Struts Configuration 2.0 //EN"
  "resources/struts-2.1.7.dtd">

<struts>
	<constant name="struts.i18n.encoding" value="utf-8"></constant>
	<constant name="struts.multipart.maxSize" value="10000000" />
	
	
	<package name="ajax" extends="json-default">
	
		<action name="ajaxTest" class="ajaxTestSpring">
			<result name="success" type="json"></result>
		</action>
	
	</package>
	
	
</struts>

 

在spring中配置对应的处理action类

<!-- 测试使用的ajax -->
	<bean id="ajaxTestSpring" class="hb.ajax.AjaxTest"></bean>

 

前端发送ajax请求

 

<%@ 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="<%=basePath%>">
    
    <title>My JSP 'ajax.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">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<script type="text/javascript" src="<%=basePath%>js/util/jquery-1.4.4.js"></script>
  </head>
  
  <body>
    <button onclick="test1()">ajax简单入门</button><br>
    <button onclick="test2()">ajax 接受对象</button><br>
    <button onclick="test3()">ajax 接受多个对象</button><br>
  </body>
</html>
<script>

function test1(){
	$.ajax({
		type:"post",
		url:"<%=basePath%>ajaxTest.action",
		data: "name=John&location=Boston",
		success:function(data){
			alert(data.name);
		},
		error:function(){
			alert("error");
		}
	});
}

function test2(){
	$.ajax({
		type:"post",
		url:"<%=basePath%>ajaxTest.action",
		data: "name=Johns&location=Boston",
		success:function(data){
			alert(data.name);
			alert(data.person.password);
		},
		error:function(){
			alert("error");
		}
	});
}

function test3(){
	$.ajax({
		type:"post",
		url:"<%=basePath%>ajaxTest.action",
		data: "name=Johnlist&location=Boston",
		success:function(data){
			alert(data.persons[1].password);
		},
		error:function(){
			alert("error");
		}
	});
}

</script>

 

 

对应的java处理类

 

package hb.ajax;

import java.util.Date;
import java.util.LinkedList;
import java.util.List;

import hb.person.model.Person;

import com.opensymphony.xwork2.ActionSupport;

public class AjaxTest extends ActionSupport{

	String name;
	Person person;
	List<Person> persons;
	
	public List<Person> getPersons() {
		return persons;
	}
	public Person getPerson() {
		return person;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String execute() throws Exception {
		System.out.println(this.name);
		if(this.name.equals("John")){
			this.name="ajax 测试成功";
		}
		if(this.name.equals("Johns")){
			this.name="ajax 测试成功";
			this.person = new Person();
			person.setAge(12);
			person.setBirthday(new Date());
			person.setName("测试ajax");
			person.setPassword("我是密码");
		}
		if(this.name.equals("Johnlist")){
			this.name="ajax 测试成功";
			Person person1 = new Person();
			person1.setAge(12);
			person1.setBirthday(new Date());
			person1.setName("测试ajax");
			person1.setPassword("我是密码");
			
			Person person2 = new Person();
			person2.setAge(122);
			person2.setBirthday(new Date());
			person2.setName("测试ajax2");
			person2.setPassword("我是密码2");
			
			this.persons = new LinkedList<Person>();
			persons.add(person1);
			persons.add(person2);
		}
		return "success";
	}
	
}

 

 

备注:对应的action中的属性需要有get方法,这样才能保证前端得到对应的json数据,三个ajax分别json内容

1、{"name":"ajax 测试成功"}

 

2、{"name":"ajax 测试成功","person":{"age":12,"birthday":当前时间toString,"name":"测试ajax","password":"我是密码"}}

 

3、{"name":"ajax 测试成功","persons":[{"age":12,"birthday":当前时间toString,"name":"测试ajax","password":"我是密码"},{"age":122,"birthday":当前时间toString,"name":"测试ajax2","password":"我是密码2"}]} 

Ajax利用JQuery在Struts2的实现

这里有篇文章但是基本对的,有些东西需要自己写很坑爹,感觉他吧一些东西删去了。1.Struts.xml必须写上json格式和数据,不然传什么值 dataM...
  • liuzhustu
  • liuzhustu
  • 2017年03月11日 14:23
  • 358

Struts 2三种方式实现Ajax

Ajax本质上和普通的HTTP请求是一样的,只不过普通的HTTP请求是给人看的,而Ajax请求是给JS代码去用的。 所以Ajax请求的页面一般比普通的HTTP请求的响应内容还要简单,可能是一个页面的一...
  • xiao__gui
  • xiao__gui
  • 2014年03月24日 09:47
  • 7546

【在Struts2中加入ajax异步发送请求给服务器】

1.首先在src下面添加一个action类,如下: public class ArticleAction extends BaseAction { public static long getS...
  • bear_huangzhen
  • bear_huangzhen
  • 2016年04月27日 19:28
  • 3941

Struts2之ajax提交表单(借助jquery插件)

1 index.jsp pageEncoding="UTF-8"%>         $(document).ready( function() {                  ...
  • u012871207
  • u012871207
  • 2015年02月02日 20:39
  • 1254

简单实用的json+struts2+ajax异步校验

struts2 ajax struts2 json 异步校验
  • sun2015_07_24
  • sun2015_07_24
  • 2016年01月05日 17:29
  • 1499

jquery+Struts2实现ajax局部刷新分页

###我们先来看看传统的分页是什么样子 从URL中很明显的看出了分页的技术点,两个参数:一个是当前页page一个是页面大小size 我们甚至可以直接修改URL中的参数来跳转到相应的页面。下面几...
  • u014424628
  • u014424628
  • 2016年01月21日 10:57
  • 2127

Struts2+Jquery实现ajax并返回json类型数据

主要实现步骤如下: 1、JSP页面使用脚本代码执行ajax请求 2、Action中查询出需要返回的数据,并转换为json类型模式数据 3、配置struts.xml文件 4、页面脚本接受并处...
  • shuaishuai123485615
  • shuaishuai123485615
  • 2017年04月17日 14:52
  • 617

Struts2之—集成Json插件实现Ajax

上篇博客介绍了Struts2中自定义结果集实现Ajax,也分析了它的缺点:这样自定义的结果集,写死了,不能做到客户端需要什么数据就传什么数据; Struts2之—自定义结果集实现ajax    本篇...
  • hanxuemin12345
  • hanxuemin12345
  • 2014年08月23日 22:17
  • 4926

关于Struts2和ajax的登录验证问题

 首先要搭建好SSH环境,这就不说了,需要注意的就是要导入json所需要的包。然后在相应的Action中写一个登录验证的方法: public class UserAction extend...
  • xwgj2012
  • xwgj2012
  • 2017年03月16日 10:13
  • 475

jQuery纯手写前台,动态分页,调用ajax,与后台struts2动态交互!

背景: 使用UIKit的附加组件时,用的时候的确挺爽的,但是没有办法自己动态改变 data-uk-pagination="{items:100, itemsOnPage:10}" 看了半天他们的js源...
  • qq_30179189
  • qq_30179189
  • 2016年08月07日 11:21
  • 400
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:struts2中使用ajax
举报原因:
原因补充:

(最多只允许输入30个字)