门业 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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵