首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

怎么指定struts2返回小弟我们需要的json类型数据

2013-08-04 
如何指定struts2返回我们需要的json类型数据?如何指定struts2返回我们需要的json类型数据?今天下午做项目

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

如何指定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" 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

?

热点排行
Bad Request.