首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Struts2 接收 AJAX 提交的 JSON 數據

     編輯:程式設計疑難解答

前端 AJAX

$.ajax({
    type: "POST",
    url: "saveCourseType",
    contentType: "application/json", // 關鍵:聲明發送 JSON
    data: JSON.stringify({ rows: [...]}), // 將對象序列化為 JSON 字符串
    dataType: "json",
    success: function(resp) { ... }
});

後端 Action

public class CourseAction extends ActionSupport {
    private String jsonData; // 接收原始 JSON 字符串
    // 或直接映射到對象
    private CourseType courseType;

    public void setJsonData(String jsonData) { this.jsonData = jsonData; }
    public void setCourseType(CourseType ct) { this.courseType = ct; }

    public String save() {
        // 方式1:手動解析 jsonData (用 Gson/Jackson)
        // 方式2:Struts2 JSON 插件自動將 JSON 映射到 courseType 對象
        return SUCCESS;
    }
}

struts.xml 配置

<package name="default" extends="struts-default, json-default">
    <action name="saveCourseType" class="com.example.CourseAction" method="save">
        <result type="json">
            <param name="root">responseObj</param> <!-- 返回對象 -->
        </result>
    </action>
</package>

關鍵點

  • 前端設置 `contentType: "application/json"`。
  • Struts2 需引入 `struts2-json-plugin.jar`,且 package 繼承 `json-default`。
  • Action 屬性需提供 setter,支持基本類型、List、Map、自定義 Bean 自動映射。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved