struts2怎么返回一個字符串給jsp?(使用json)


我們都知道使用servlet時可以直接用PrintWriter對象的print方法來向頁面傳送一些字符串(可以是html標簽和內容),然后在用RequestDispatcher來轉向網頁

 

雖Struts2的Action返回的也是字然符串,但是這個字符串並不是將這個字符串傳給網頁,實際上它映射到一個物理視圖的,也就是網頁。

 

那么怎么讓Struts2返回一個字符串呢?——使用JSON

 

在Struts2的lib下有個struts2-json-plugin-version.jar,將其復制到WEB-INF/lib下,如果使用了eclipse,還得右鍵->Buld Path->add to buil path

 

然后配置action:

 

/****方式一 添加注解:****/

@ParentPackage(value="json-default")
@Result(type="json", params={"noCache", "true", "contentType", "text/html"})



/****方式二 配置struts.xml***/

<package extends="json-default">
    <action name="notice" class="com.xxx.action.NoticeAction">
        <result type="json">
                <param name="noCache">true</param>
                <param name="contentType">text/html</param>
        </result>
    </action>

</package>

其中noCache這個屬性設置“是否取消瀏覽器緩存”,改為true將增加文件頭。

父包json-default是死的。

配置結果為json后,execute的返回值沒有了任何意義

那么這個json的內容是什么?

 

實際上,struts2會將該action中getter的名字/返回值 當作json 的鍵/值。

如: 你的action中有個String getContent()方法,返回值是"哈哈",那么生成的json字符串為:{"content":"哈哈"}

要注意的是,即使你沒有content這個屬性,也能生成對應的json

 

 然后在JSP畫面,使用jquery發送/接收請求(JSON.parse需要下載JSON.js):

$(document).ready(function() {
    $.get("notice", 
        function(json) {
                    $("#cc").html(JSON.parse(json).content);
        }
    );
});    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM