struts 2が必要なjsonタイプのデータを返すように指定するにはどうすればいいですか?


struts 2が必要な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