当前位置:首页 > 开发 > 编程语言 > Json > 正文

如何指定struts2返回我们需要的json类型数据?

发表于: 2013-07-29   作者:chinrui   来源:转载   浏览次数:
摘要: 如何指定struts2返回我们需要的json类型数据? 今天下午做项目的时候,明明可以查到数据,可是就是没有在客户端进行显示,把所有前台代码扫了几遍,都不能找到原因,通过查看返回的json代码,发现有很多多余的返回内容,也就是这些多余的返回内容造成了前台解析的错误,经过上网查询找到了解决的办法: 处理请求的Action:   package com.hpu.action;

如何指定struts2返回我们需要的json类型数据?

今天下午做项目的时候,明明可以查到数据,可是就是没有在客户端进行显示,把所有前台代码扫了几遍,都不能找到原因,通过查看返回的json代码,发现有很多多余的返回内容,也就是这些多余的返回内容造成了前台解析的错误,经过上网查询找到了解决的办法:

处理请求的Action:

 

package com.hpu.action;

import java.util.List;

import javax.annotation.Resource;

import com.hpu.pojo.Commodity;
import com.hpu.service.CommodityService;
import com.opensymphony.xwork2.ActionSupport;

public class CommodityAction extends ActionSupport {
	
	private Double agio;
	private List<Commodity> commodities;
	private CommodityService commodityService;
	
	private Integer limit;
	private String msg;
	private String name;
	
	private Double price;
	private Integer recordSize;
	
	private Integer start;
	
	private boolean success;

	/**商品信息录入
	 * @author qinrui
	 * @see commodityService
	 * @return String
	 */
	public String add() {
		// 根据商品名获取商品
		Commodity commodity = commodityService.loadByName(name);
		
		// 商品不存在,将新商品保存起来
		if(commodity == null) {
			// 创建商品对象 
			commodity = new Commodity();
			// 设定商品属性
			commodity.setName(name);
			commodity.setPrice(price);
			commodity.setAgio(agio);
			// 保存商品
			commodityService.save(commodity);
			success = true;
			msg = "商品录入成功";
		} else {
			success = false;
			msg = "商品已经存在";
		}
		
		return SUCCESS;
	}
	
	public Double getAgio() {
		return agio;
	}

	public List<Commodity> getCommodities() {
		return commodities;
	}

	public Integer getLimit() {
		return limit;
	}

	public String getMsg() {
		return msg;
	}

	public String getName() {
		return name;
	}

	public Double getPrice() {
		return price;
	}

	public Integer getRecordSize() {
		return recordSize;
	}

	public Integer getStart() {
		return start;
	}

	public boolean isSuccess() {
		return success;
	}

	public String query() {
		recordSize = commodityService.loadCommodities().size();
		commodities = commodityService.loadCommodities(start , limit);
		
		for(Commodity c : commodities) {
			System.out.println(c.getName());
		}
		return SUCCESS;
	}

	public void setAgio(Double agio) {
		this.agio = agio;
	}

	public void setCommodities(List<Commodity> commodities) {
		this.commodities = commodities;
	}

	@Resource(name="commodityServiceImpl")
	public void setCommodityService(CommodityService commodityService) {
		this.commodityService = commodityService;
	}

	public void setLimit(Integer limit) {
		this.limit = limit;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void setPrice(Double price) {
		this.price = price;
	}

	public void setRecordSize(Integer recordSize) {
		this.recordSize = recordSize;
	}

	public void setStart(Integer start) {
		this.start = start;
	}

	public void setSuccess(boolean success) {
		this.success = success;
	}
}

 我需要查询所有的Commodity,所有要调用query方法,也就是我要返回的内容只需要commodities与recordCode,就行了,可是如果不在struts.xml进行相应的配置,它就会返回所有内容,包括值为null的,那怎样才能让它按照自己的需求返回值呢?下面给出相应的strtus.xml配置:

 

 

<action name="commodity_query" class="com.hpu.action.CommodityAction" method="query">
	<result type="json">
		<param name="includeProperties">commodities.*,recordSize</param>
	</result>
</action>

 解释:由于commodities是个集合类型,如果只写上commodities的话,就会返回一个空的集合,而要返回集合里面的元素就要改成commodities.*,而要返回值中间使用逗号作为间隔符,includeProperties表示要返回内容,如果想要去掉不想要的内容使用excludeProperties即可。

 

参考文章:http://biancheng.dnbcw.info/java/408867.html

 

如何指定struts2返回我们需要的json类型数据?

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
我们常见一些网站在做ajax时返回JSON格式的数据: 返回的是json格式的数据 这有什么好处那?很显然前
早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,
转载自 yshjava的个人博客主页 《Struts2返回JSON数据的具体应用范例》 早在我刚学Struts2之初的时
转载自 yshjava的个人博客主页 《Struts2返回JSON数据的具体应用范例》 早在我刚学Struts2之初的时
早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,
本例使用struts2版本 struts-2.1.8.1 首先导入必要的jar包: 配置web.xml: <filter> <fil
JSON(JavaScript Object Notation) 首先来看一下JSON官方对于“JSON”的解释: JSON(JavaScript Obj
本例使用struts2版本 struts-2.1.8.1 首先导入必要的jar包: 配置web.xml: <filter> <fil
早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,
Struts2返回JSON数据的具体应用范例 博客分类: Struts2 Struts2 JSON 早在我刚学Struts2之初的时候
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号