導航:首頁 > 文件管理 > strutsjson配置文件

strutsjson配置文件

發布時間:2023-01-16 19:29:21

jsp頁面通過action獲取不到json數據

JSP頁面接收不到ACTION返回的JSON數據是因為在struts的配置文件中返回數據類型指定錯誤導致,正確的方法是指定application/json返回。
1、在action的配置中寫法如下:
<action name="write" class="json.JsonAction" method="write" />
2、在具體要返回的方法中寫法如下:

public void write() throws IOException{
HttpServletResponse response=ServletActionContext.getResponse();
/*
* 在調用getWriter之前未設置編碼(既調用setContentType或者setCharacterEncoding方法設置編碼),
* HttpServletResponse則會返回一個用默認的編碼(既ISO-8859-1)編碼的PrintWriter實例。這樣就會
* 造成中文亂碼。而且設置編碼時必須在調用getWriter之前設置,不然是無效的。
* */
response.setContentType("application/json;charset=utf-8");
//response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
//JSON在傳遞過程中是普通字元串形式傳遞的,這里簡單拼接一個做測試
String jsonString="{\"user\":{\"id\":\"123\",\"name\":\"張三\",\"say\":\"Hello , i am a action to print a json!\",\"password\":\"JSON\"},\"success\":true}";
out.println(jsonString);
out.flush();
out.close();
}

⑵ struts2 global-exception-mappings global-results 配置在使用json包失效的問題

把struts-default 改為json-default,完畢

⑶ struts2配置文件中返回json怎樣接收的呢

Action返回的json前台用ajax可以接受,如果不是ajax發出的請求最好用定義域傳值,request.setAttribute()

⑷ struts2 json配置文件

LZ是新手,struts2 return null時是不會去執行配置文件的<result>的,出來當然沒有數據。多看看基礎的東西吧

⑸ struts2 怎樣讀取json數據

一.認識JSON

JSON是一種輕量級、基於文本、與語言無關的數據交換格式,可以用文本格式的形式來存儲或表示結構化的數據。

二.POST請求與Content-Type: application/json

常用的HTTP請求方法有GET, POST, PUT, DELETE等。在提交POST請求時,請求數據放在消息體(Body)中,請求數據的格式及編碼方式用Content-Type來指定。如我們常用的表單<form>提交,其Content-Type默認為application/x-www-form-urlencoded,提交的數據按照key1=val1&key2=val2進行編碼,伺服器端也能很容易地解析K-V值。

JSON的出現,讓交換的數據不再僅限於簡單的K-V結構,而可以有更加復雜的層級,特別適合於RESTful介面。在發送請求時,指定Content-Type為application/json,即可使用JSON字元串作為請求的數據。而在伺服器端接收到該請求後,將按照JSON字元串對請求數據進行處理。

三.Struts2接收JSON請求

在Struts2的Action中提取Content-Type為application/x-www-form-urlencoded的POST參數,我們非常熟悉:在Action中定義屬性及其getter, setter方法,接收到請求時,默認會將與屬性同名的參數值賦予該屬性。

但是對Content-Type為application/json的請求數據,Struts2默認無法解析。因為請求的JSON數據需從輸入流中讀取出來,無法直接從ServletRequest的請求參數中解析。很容易想到,要讀取JSON請求數據,最直接的方式就是從輸入流讀取。而同時,Struts2的strus2-json-plugin也提供了有關的攔截器,對JSON請求數據進行解析。下面將對兩種方案進行分析:

1.從輸入流中讀取JSON請求數據,以下是在Action中實現的一個讀取輸入流數據的方法

  • 解析得到JSON對象後,遍歷JSON對象,取出K-V,通過反射的V設置給予K相同的屬性

  • 開發者可根據自己的需求進行選擇:從輸入流直接讀取JSON請求數據,或使用struts2-json-plugin對JSON請求數據進行處理。

    ⑹ struts2配置文件中 type="json"無法使用

    struts 的配置文件中的package要繼承json-default ,把原來的struts-default 換掉就好了

    ⑺ struts2怎麼返回json數據

    <?xmlversion="1.0"encoding="UTF-8"?>
    <!DOCTYPEstrutsPUBLIC
    "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN"
    "
    <struts>
    <packagename=""extends="json-default"namespace="">


    <actionname=""class=""method="">
    <resulttype="json">
    以下是變數名為loginUser對象的某些指定屬性
    <paramname="includeProperties">
    loginUser.id,
    loginUser.loginName,
    loginUser.name,
    loginUser.roleNames
    </param>

    以下是變數名為loginUser對象的全部屬性,多個對象用逗號
    <paramname="includeProperties">
    loginUser.*,
    loginUser1.*
    </param>

    以下是集合里的某些指定屬性
    <paramname="includeProperties">
    weekScheles[d+].id,
    weekScheles[d+].startDate,
    weekScheles[d+].endDate,
    weekScheles[d+].title,
    weekScheles[d+].scheleCount
    </param>
    </result>
    </action>
    </package>
    </struts>

    注意package標簽,extends要寫成json-default

    Struts2處理JSON只需要在xml文件里就可以完成,但是要注意,能夠直接作為JSON返回的必須是Action類里的屬性,方法中的屬性不能使用此方式直接返回

    閱讀全文

    與strutsjson配置文件相關的資料

    熱點內容
    福昕閱讀器合並照片pdf文件 瀏覽:591
    vhd文件有什麼用 瀏覽:482
    編程小朋友看什麼書 瀏覽:623
    經營如何讓數據說話 瀏覽:258
    如何在手機上升級opop 瀏覽:614
    coreldrawx5免費視頻教程 瀏覽:725
    網站引導頁面源碼 瀏覽:234
    個人簡歷範文word 瀏覽:220
    uc下載的視頻怎樣提取到文件 瀏覽:499
    英雄下載下載最新版本2015下載安裝 瀏覽:433
    NX深孔鑽編程替換面如何操作 瀏覽:725
    手機怎麼刪除pdf文件 瀏覽:256
    蘋果手機沒有efs文件夾怎麼辦 瀏覽:723
    metro軟體在哪個文件夾 瀏覽:69
    怎麼用手機登錄編程貓 瀏覽:400
    文本md204顯示器如何編程 瀏覽:705
    如何將表中重復數據標記 瀏覽:859
    中級資料庫系統工程師應用技術考什麼 瀏覽:404
    博途編程如何設置停止鍵 瀏覽:409
    python3刪除文件內容 瀏覽:754

    友情鏈接