1. 程式人生 > >Struts2.5 利用Ajax將json數據傳值到JSP

Struts2.5 利用Ajax將json數據傳值到JSP

const enable sta func 創建 方法調用 方法 後臺 encoding

AJAX +JSON=》JSP

AJAX


  AJAX 是一種在無需重新加載整個網頁的情況下,能夠更新部分網頁的技術。 通過在後臺與服務器進行少量數據交換,AJAX 可以使網頁實現異步更新。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。 傳統的網頁(不使用 AJAX)如果需要更新內容,必須重載整個網頁頁面。

JSON


  JSON(JavaScript Object Notation, JS 對象標記) 是一種輕量級的數據交換格式。它基於 ECMAScript (w3c制定的js規範)的一個子集,采用完全獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網絡傳輸效率。

利用Ajax將json數據傳值到JSP


第一步:在你的Action中創建一個json數據

public class AjaxAction extends ActionSupport{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private String  result;
    public String getResult() {
        return result;
    }
    public void setResult(String result) {
        
this.result = result; } public String getjson() { JSONObject json = new JSONObject(); json.put("name","張三"); json.put("password","123456"); result=json.toString(); return SUCCESS; }

第二步:編寫struts.xml文件中的內容

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd"
> <struts> <!-- 設置開發者模式 修改action中的名字可以不用重啟服務器 --> <constant name="struts.devMode" value="true"></constant> <!-- 只有在後綴中有(.do)的才經過,這個value可以自己修改 --> <constant name="struts.action.extension" value="do"></constant> <!-- 開啟動態方法調用 --> <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <package name="default" extends="json-default" namespace=""> <action name="ajax" class="com.action.AjaxAction" method="getjson"> <result name="success">/ajaxjson.jsp</result> <result type="json" >
<!-- 這裏指定將被Struts2序列化的屬性,該屬性在action中必須有對應的getter方法 -->
<param name="root">result</param> </result> </action> </package> </struts>

凡是使用Struts2序列化對象到JSON的action,所在的package必須繼承自json-default,註意,這裏唯一的result,沒有指定name屬性。parm設置name=“root”表示局部刷新,返回根目錄頁面.

第三步:首先先了解Ajax的原理:這是用jQuery做的,需要引 js

function testCheck(num){
        $.ajax({
            type:"post",//提交方式
            url:"TestCheckServlet",//提交地址
            async:true,//是否異步請求
            dataType:"html",//返回類型
            data:{"num":num},//傳過去的值
            success:function(data,textStatus){//成功執行的方法
                var json=eval("("+data+")");//將傳過來的數據轉json,也可以傳過來就是json數據免得麻煩轉
                 alert(json.name);
            },
            error:function(){//失敗執行的方法
                alert("error");
            }
        })
    } 

JSON的傳值方法還有很多,需要大家一點點的挖掘

【版本聲明】本文為博主原創文章,轉載請註明出處

Struts2.5 利用Ajax將json數據傳值到JSP