extjs是如何从struts2中的action中取值的?

zhiwen2080 2010-08-17 01:14:47
我想请问下 extjs是如何从struts2中的action中取值的?(不用response对象)

public class ExtAction extends ActionSupport {
private String result;

public String getResult() {
return result;
}

public void setResult(String result) {
this.result = result;
}

public String getListInfo()
{
DBUtils db=new DBUtils();
Result res=new Result();
res.setPerList(db.getList());
JSONArray josn=JSONArray.fromObject(res);
result=josn.toString().substring(1,(josn.toString().length()-1));
return SUCCESS;
}
}

struts.xml:
<package name="default" namespace="/" extends="struts-default">
<action name="per_*" method="{1}" class="com.ecjtu.action.ExtAction">
<result>
/WEB-INF/sp.jsp
</result>
</action>
</package>



js:

Ext.Ajax.request({
url:url,
method:method,
params:{name:param},
success:function (response,options)
{
//这里想取得那个返回过来的值怎么取?
},
failure:function (response,options){alert("failure");}
});
那个result不知道如何传递过去啊!!extjs如何取得这个result?
...全文
725 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
larry_seven 2010-09-01
  • 打赏
  • 举报
回复
把results转成JSONObject 类型 然后out.write(jsonobject.toString());输出到客户端 客户端在解释 显示。
xieshengjun2009 2010-08-31
  • 打赏
  • 举报
回复
outJson()....
lsn_tom 2010-08-20
  • 打赏
  • 举报
回复
学习。学习
zidasine 2010-08-20
  • 打赏
  • 举报
回复
用struts2 结合一下jsonplugin.jar 插件struts支持
LazyCat2222 2010-08-20
  • 打赏
  • 举报
回复
在前台取action的值,首先你需要用PrintWrite 将值输出。。而且这个action是不能有返回值了的。
你是需要通过respose返回到前台去的。在resposne已经响应完了。。不能再有return的,在前台的回调函数里面 你就可以使用
var data = Ext.util.decode(response.responseText);

action里面的方法应该改一下。、、

public void getListInfo() //返回void类型
{
DBUtils db=new DBUtils();
Result res=new Result();
res.setPerList(db.getList());
JSONArray josn=JSONArray.fromObject(res);
result=josn.toString().substring(1,(josn.toString().length()-1));
// return SUCCESS; //不需要在return 直接
HttpResponse response = SevletActionContext.getResponse();
response.getWrite().print(result); //这样子输出到前台,不然你就算去前台取值也取值不到。

response.getWrite().print(true);

}

//如果是要有页面跳转,应该是另外再用个一个action请求跳转的。
public String forward(){
return "success";
}
}


//Extjs页面 就可以取值了。。
Ext.Ajax.request({
url:url,
method:method,
params:{name:param},
success:function (response,options)
{
//这里想取得那个返回过来的值怎么取?
alert(response.responseText); //这样子取到的就是你的Json格式的数据
var data = new Ext.util.JSON.decode(response.responseText);
},
failure:function (response,options){alert("failure");}
});
满意 2010-08-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ac903919 的回复:]
可以考虑使用DWR框架的,这样的话,你在前端可以像在后台一样使用java代码获得数据~
[/Quote]

支持
AC903919 2010-08-20
  • 打赏
  • 举报
回复
可以考虑使用DWR框架的,这样的话,你在前端可以像在后台一样使用java代码获得数据~
冬天的蒲公英 2010-08-17
  • 打赏
  • 举报
回复
var responseData = Ext.decode(response.responseText);
Agile牧 2010-08-17
  • 打赏
  • 举报
回复
关注中。。 学习extjs中

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧