如何从struts-rest-plugin请求时排除属性?

时间:2013-04-17 03:19:10

标签: java xml json rest struts2

我正在使用struts-rest-plugin index方法返回Fruitxml格式的json个对象列表。它的效果非常好。

模特课:

class Fruit {

    private String name;
    private double price;

    // constructor

    // getter/setter

    // equals and hash method

}

我想在xml / json输出中排除我的模型对象中的一些属性,比如price。我知道我可以用包装类包装它,但似乎有很多事情要做。

我尝试过:

@Results(@Result(name = "success", type = "redirectAction", params = {
        "actionName", "fruit"}))
public class FruitController extends ActionSupport implements
        ModelDriven<Object> {

    private int id;
    private Fruit model = new Fruit();
    private List<Fruit> list;
    private FruitService fruitService = new FruitService();

    public void setId(int id) {
        this.id = id;
        if (id > 0) {
            this.model = fruitService.get(this.id);
        }
    }

    public int getId() {
        return this.id;
    }

    public HttpHeaders index() {
        list = fruitService.getAll();
        return new DefaultHttpHeaders("index").disableCaching();
    }

    @Override
    public Object getModel() {
        return (list != null ? list : model);
    }

    ....

}

struts.xml中

...
<constant name="struts.convention.action.suffix" value="Controller"/>
<constant name="struts.convention.action.mapAllMatches" value="true"/>
<constant name="struts.convention.default.parent.package" value="rest-default"/> 
<constant name="struts.convention.package.locators" value="controller" />
...
<interceptor-ref name="params">
                <param name="excludeParams">price</param>
</interceptor-ref>
...

它不起作用。请帮忙。感谢。

1 个答案:

答案 0 :(得分:0)

您应该使用XStream注释来省略结果

中的必填字段