使用jquery Ajax的post方法或直接使用jqery ajax请求action 得到返回的json数据

                在初步掌握了java对象和json的相互转化之后,今天要学习的就是如何使用ajax来请求action  并且放回json字符,在前台对json数据进行解析。

第一步:使用ajax 的post直接提交,写一个Post.jsp文件

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
	<script type="text/javascript" src="js/jquery-2.0.0.js"></script>
	<script type="text/javascript" src="js/Post.js"> </script>
  </head>
  <body>
  <input type="text" id="name">  <!-- 用来输入传递的参数 -->
    <input type="button" id="bt" value="SayHello"><br/><!-- 用来提交的按钮 -->
    Hello <div id="result"></div><!-- 结果的显示 -->
  </body>
</html>

然后有一个与它对应的js(Post.js)文件,用来写post的提交:

$(function(){
	$("#bt").click(function(){
		var result=$("#name").val();
		
		//使用$.post方式    提交
        $.post(  
            "postAction",//指定提交的url   
            {'result':result},    	 //传递的参数 ,使用Struts2 的注入参数的方式(action中有对应的属性,setter方法)
            function success(data){ //提交成功之后的回调函数
            	alert(data);
                var r = $.parseJSON(data) ;    //包数据解析为json 格式     
          		alert(r.name);
                $("#result").html(r.name);
            },   
            "json"   //指定返回的数据为json字符串
        ); 
	});
});

对应的PostAction:

public class PostAction extends ActionSupport {
	private String result;
	public String getResult() {
		return result;
	}
	public void setResult(String result) {
		this.result = result;
	}
	@Override
	public String execute() throws Exception {
		JSONObject jobject=new JSONObject();
//		Map<String,Object> map=new HashMap<String,Object>();
//		map.put("name", result);
		jobject.element("name", result);
		result=jobject.toString();
		return super.execute();
	}
	
}

Struts配置文件:

?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<package name="login" extends="json-default">
			
		<action name="postAction" class="edu.hue.jk.action.PostAction">
			<result   type="json">
				<param name="root">result</param> <!-- root表示返回对象的层级为根部             result是返回结果 -->
			</result>
		</action>
	</package>
</struts>    
结果:

点击按钮:


第二步:直接使用ajax请求action:ajax.jsp

<%@ 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">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-2.0.0.js"></script>
<script type="text/javascript" src="js/Ajax.js"></script>
</head>
<body>
	<input id="name" type="text" ><input type="button" id="bt" value="Ajax请求">
	
	<br/>Hello <div id="result"></div>
</body>
</html>

Ajax.js:

$(function(){
	$("#bt").click(function(){
		var name=$("#name").val();
		$.ajax({
  			type: "post",
              dataType:'json', //接受数据格式 
              cache:false,
              data:{"result":name},
              url: "ajaxAction",
              beforeSend: function(XMLHttpRequest){
              },
              success: function(data){
                alert(data);
                var r = $.parseJSON(data) ;    //将字符串解析成json对象     
                	$("#result").html(r.name);
                 
               },
              error: function(){
              //请求出错处理
                  alert("Error!");
              }
           });
		
	});
	
});

AjaxAction:

$(function(){
	$("#bt").click(function(){
		var name=$("#name").val();
		$.ajax({
  			type: "post",
              dataType:'json', //接受数据格式 
              cache:false,
              data:{"result":name},
              url: "ajaxAction",
              beforeSend: function(XMLHttpRequest){
              },
              success: function(data){
                alert(data);
                var r = $.parseJSON(data) ;    //将字符串解析成json对象     
                	$("#result").html(r.name);
                 
               },
              error: function(){
              //请求出错处理
                  alert("Error!");
              }
           });
		
	});
	
});

Struts 配置文件:

	<package name="login" extends="json-default">
				<action name="ajaxAction" class="edu.hue.jk.action.AjaxAction">
			<result   type="json">
				<param name="root">result</param> <!-- root表示返回对象的层级为根部             result是返回结果 -->
			</result>
		</action>
	</package>

结果:




 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值