门业 2010-11-01 01:01
浏览 293
已采纳

struts2.1.8 ,使用自带json插件struts2-json-plugin-2.1.8.1.客户端得不到json对象,弹出下载action提示框

struts2.1.8 ,使用自带struts2-json-plugin-2.1.8.1.jar把action对象返回客户端的json对象。注释配置,客户端总是弹出下载页面,打开后是正常的json数据,各位可以帮忙看看?代码很简单,困老好几天了,非常感谢,代码如下:
Java代码

import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.test.product.bean.ScmProdUnit;
import com.opensymphony.xwork2.ActionSupport;
@Controller

@Scope("prototype")

@ParentPackage("json-default")

@Results( {

@Result(name = "success",type = "json")

})

public class JsonTestAction extends ActionSupport {

private static final long serialVersionUID = -6933656224417288484L;   
private ScmProdUnit scmProdUnit;    

// @Action(results={@Result(type="json",name="success",params ={"root","scmProdUnit" })})

public String querybyB() throws Exception {

    System.err.println("2222222");     
    scmProdUnit = new ScmProdUnit();   
    scmProdUnit.setId(1);   
    scmProdUnit.setCode("jsoncode");           
    scmProdUnit.setName("json数据");   
    scmProdUnit.setRemark("测试");   
    return SUCCESS;   
}   


public ScmProdUnit getScmProdUnit() {   
    return scmProdUnit;   
}   


public void setScmProdUnit(ScmProdUnit scmProdUnit) {   
    this.scmProdUnit = scmProdUnit;   
}   

}

}

@Controller
@Scope("prototype")
@ParentPackage("json-default")
@Results( {
@Result(name = "success",type = "json")

})
public class JsonTestAction extends ActionSupport {

private static final long serialVersionUID = -6933656224417288484L;
private ScmProdUnit scmProdUnit; 

// @Action(results={@Result(type="json",name="success",params ={"root","scmProdUnit" })})

public String querybyB() throws Exception {

    System.err.println("2222222");  
    scmProdUnit = new ScmProdUnit();
    scmProdUnit.setId(1);
    scmProdUnit.setCode("jsoncode");        
    scmProdUnit.setName("json数据");
    scmProdUnit.setRemark("测试");
    return SUCCESS;
}


public ScmProdUnit getScmProdUnit() {
    return scmProdUnit;
}


public void setScmProdUnit(ScmProdUnit scmProdUnit) {
    this.scmProdUnit = scmProdUnit;
}

}

}
ProdUnit 只是一个很简单的pojo,前台代码如下
Java代码
function getjsontest()

{

$.post("json-test!querybyB.action",

{

},function(returnData,status)

{

if("success" == status)

{

alert(returnData.length); }

},"json"

);

}

function getjsontest()
{
$.post("json-test!querybyB.action",
{

},function(returnData,status)
{
if("success" == status)
{
alert(returnData.length); }
},"json"
);
}

当我在一个测试页面button里掉这个function时候,总是弹出action下载页面,下载打开后,里面的json对象数据好像没错啊,如下:
{"scmProdUnit":{"code":"jsoncode","id":1,"name":"json数据","remark":"测试"}},调用js的时候returnData总是返回null值,为啥啊?郁闷了几天了,麻烦看看

  • 写回答

2条回答 默认 最新

  • lizhiyezi 2010-11-01 10:46
    关注

    javascript:getjsontest2 应该是 javascript:getjsontest

    返回格式是json 应该使用 $.getJSON(url,data,callback) 函数

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于PLUS模型中kapaa值的问题
  • ¥15 关于博途V17进行仿真时无法建立连接问题
  • ¥15 请问下这个红框里面是什么文档或者记事本编辑器
  • ¥15 机器学习教材中的例题询问
  • ¥15 求.net core 几款免费的pdf编辑器
  • ¥15 为什么安装HCL 和virtualbox之后没有找到VirtualBoxHost-OnlyNetWork?
  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号