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"}]} 

相关文章推荐

Struts2 ajax json使用介绍

  • 2014年12月17日 22:22
  • 5.09MB
  • 下载

ajax与Struts2使用json格式交互实例

  • 2015年09月18日 21:01
  • 5.36MB
  • 下载

struts2 + ajax + json的结合使用--实例讲解

1.准备工作    ①ajax使用Jquery:jquery-1.4.2.min.js        ②struts2与json的依赖包:struts2-json-plugin-2.2.3.jar...
  • hraceo
  • hraceo
  • 2013年08月13日 17:53
  • 895

struts2使用ajax实现页面和action之间通过json数据交互

要在struts2中使用json数据交互,需要导入以下包 当然,struts2应用核心包也要导入...

使用struts2+Ajax+jquery验证用户名是否已被注册

推荐阅读:JQuery+Ajax+Struts2+Hibernate框架整合实现完整的登录注册 在用户模块中的用户注册需求上,通常要进行用户名是否已被注册的验证,今天正好写了这个需求,把详细代码...

在Struts2中使用JSON AJAX

JSON插件提供了一种名为json的ResultType,一旦为某个Action指定了一个类型为json的Result,则该Result无需映射到任何视图资源。因为JSON插件会负责将Action里的...

在struts2中使用Ajax的json和request/response两种方式

一、准备工作 ①ajax使用Jquery:jquery-min.js ②struts2与json的依赖包:struts2-json-plugin-xxx.jar 二、jsp页面...

struts2中使用ajax验证邮箱(用户名)是否被注册

action类: package com.grace.myblog.view.action; import java.io.PrintWriter; import javax.servlet.ht...

struts2 + ajax + json的结合使用,实例讲解

struts2用response怎么将json值返回到页面javascript解析,这里介绍一个struts2与json整合后包的用法。 1.准备工作    ①ajax使用Jquery:jquer...

使用Struts2和jQuery EasyUI实现简单CRUD系统(一)——从零开始,ajax与Servlet的交互

就是前端与后台的交互,学j2ee,很多时候,写jsp的时候,jsp帮你把前端后台串联起来。但事实上,很多时候前端写好的东西,需要后台进行一些处理,再去改成jsp代码是很恶心的东西,什么都是jsp。其实...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:struts2中使用ajax
举报原因:
原因补充:

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