使用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"%>


  
    My JSP 'index.jsp' starting page
	
	
  
  
    
    
Hello

然后有一个与它对应的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 map=new HashMap();
//		map.put("name", result);
		jobject.element("name", result);
		result=jobject.toString();
		return super.execute();
	}
	
}

Struts配置文件:

?xml version="1.0" encoding="UTF-8" ?>


	
			
		
			
				result 
			
		
	
    
结果:

点击按钮:


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

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here




	
	
	
Hello

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 配置文件:

	
				
			
				result 
			
		
	

结果:




 

你可能感兴趣的:(前台交互)