【求助】struts2向前台返回json数据该如何配置

只是过路人 2013-05-24 11:16:01

最近使用Jquery做ajax请求,需要从后来获得json类型数据,可是如何都获取不了

是不是还需要配置struts.xml文件啊?真的觉得怎么搞不懂....

希望大牛们给予帮助。

这是我的前台JS代码
function smallPicClick(){
$("div#showList ul li img").bind("click",function(){
var pic_id = $(this).attr("id");
$.ajax({
type:"post",
url:"checkPicInfoYardAction?picId="+pic_id,
dataType:"json",
success:function(data){
//data = eval(data);
var infoArray = eval("("+data+")"); //包数据解析为json格式
alert(infoArray);
},
error:function(){

}
});
});
}


这是action的代码
/**
* 获取单个图片的详细信息
* @return
*/
public String checkPicInfo(){
System.out.println("进入Action");
int picID = Integer.parseInt(request.getParameter("picId"));
Picture picture = pictureService.getPicById(picID);
Map<String, Object> picMap = new HashMap<String, Object>();
picMap.put("name", picture.getPicName());
picMap.put("author", picture.getAuthor());
picMap.put("description", picture.getDescription());
picMap.put("favour", picture.getFavour());
picMap.put("clickNum", picture.getClickNum());
JSONArray jsonObject = JSONArray.fromObject(picMap);
System.out.println(jsonObject.toString());
try {
response = ServletActionContext.getResponse();
response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print(jsonObject.toString());
out.flush();
} catch (Exception e) {
e.printStackTrace();
return "fail";
}
return null;
}

...全文
127 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
success:function(data){ //data = eval(data); var infoArray = eval("("+data+")"); //包数据解析为json格式 alert(infoArray); }, 改为: success:function(data){ var obj = $.parseJSON(data); //使用这个方法解析json var infoArray = obj.result; alert(infoArray ); },
ZHOU西口 2013-05-24
  • 打赏
  • 举报
回复
你误解了,人家意思是前台ajax的dataType是json,页面没问题,你的action方法可以输出转json后的结果吗
只是过路人 2013-05-24
  • 打赏
  • 举报
回复
引用 1 楼 fangmingshijie 的回复:
配置type=json
我也试过配置了一下,但是连action都不能访问到了,你看看我配置的struts.xml
<package name="json" extends="json-default">
        <action name="jsonYardAction" method="checkPicInfo" class="com.simpleton.myuniversity.action.YardAction">        
            <result type="json">
                <param name="root">result</param>
            </result>
        </action>
    </package>
  • 打赏
  • 举报
回复
配置type=json

67,513

社区成员

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

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