永发信息网

如何在struts2中使用ajax以及json

答案:2  悬赏:80  手机版
解决时间 2021-02-11 06:03
如何在struts2中使用ajax以及json
最佳答案
Struts2中有两种方式处理Ajax请求:
(注:我使用的是最新的Struts 2.3.20)
1. 使用Stream result的方式以流的形式写出到客户端。(这种方式我没有亲自做实验,下面的例子参考Struts2的官方文档)
这样书写我们的Action:
package actions; import java.io.InputStream;import java.io.StringBufferInputStream;import com.opensymphony.xwork2.ActionSupport; public class TextResult extends ActionSupport { private InputStream inputStream; public InputStream getInputStream() { return inputStream; } public String execute() throws Exception { inputStream = new ByteArrayInputStream("Hello World! This is a text string response from a Struts 2 Action.".getBytes("UTF-8")); return SUCCESS; }}
这样配置我们的struts.xml:
们可以这样书写我们的Action:
package actions; import java.io.InputStream;import java.io.StringBufferInputStream;import com.opensymphony.xwork2.ActionSupport; public class TextResult extends ActionSupport { private InputStream inputStream; public InputStream getInputStream() { return inputStream; } public String execute() throws Exception { inputStream = new ByteArrayInputStream("Hello World! This is a text string response from a Struts 2 Action.".getBytes("UTF-8")); return SUCCESS; }}
这样配置我们的struts.xml:
. 使用Struts2的插件机制:(下面我以返回JSON格式的数据为例进行说明,需要struts2-json-plugin-2.3.20包,这个包在Struts2的官方下载中已经包含,不需要额外下载)
首先是前台发送Ajax请求:(我这里使用JQuery)
$("#btnClick").click(function() { $.post("hello", {name: "tanzhenyu"}, function(data) { alert(data.greeting + ", " + data.name + "!"); }, "json"); });
我们的Action这样写:
public HelloAction extends ActionSupport { private String name;//这里的nam用来接收Ajax的请求数据 private Map resultMap;//这里的Map用来返回结果JSON数据 public getName() { return name; } public setName(String name) { this.name = name; } public getResultMap() { return resultMap; } public setResultMap(Map resultMap) { this.resultMap = resultMap; } public String execute() { resultMap = new Map<>(); resultMap.put("greeting", "Hello"); resultMap.put("name", name); return Action.SUCCESS; }}
这里注意的是:我们的Map对象不需要手动转成JSON对象,Struts2的JSON插件会帮我们转。
我们的配置文件可以这样写:
resultMap
这里注意的是:extends必须是“json-default”,name为root的param是说明返回时被序列化的对象,值为一个OGNL表达式。
全部回答
用jquery ,json 就可以很简单 去网上找下教程
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
《猫愿三角恋》里的三角是指哪三角?迷糊啊 是
农行的POS机支持扫码支付吗
聊城莘县喜德盛专卖店地址在哪,我要去那里办
雪月花饼屋这个地址在什么地方,我要处理点事
5伏直流电源如何转成3.3伏电源,并且地是隔离
十三号星期五游戏版杰森怎么胜利 杰森使用技
五岁小孩可以割包皮吗
一群男女碰杯喝酒打一成语
怎么用微信充值10元话费?之前手机充值那个工
教师为什么社会地位低
怎么配制芦荟解毒液
是at spring festival 还是at the spring fes
聊城阿县喜德盛专卖店地址好找么,我有些事要
阅读下列材料结合所学知识,回答问题。材料一
芜湖市万禾商贸有限公司NO.1怎么去啊,有知道
推荐资讯
竹叶石膏汤原方中麦冬与半夏的用量比例是A.1
【宜万铁路】宜万铁路——“桥隧博物馆”阅读
星奇俱乐部在哪里啊,我有事要去这个地方
为什么古代的皇帝有的要美人不要江山,为了美
4码试玩地址是哪个——地下勇士中剑魂的五段
和洽房产我想知道这个在什么地方
e联购商城的购物卡怎么用?
名城大厦在哪里啊,我有事要去这个地方
英子照顾地弟弟妹妹的片段
宠物小精灵拉鲁拉丝用日月石进化后什么样
男,30岁。患甲状腺功能亢进症1年,早晨起床
德语 Was darf's sein?您有什么要求?1.这块的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?