2

オブジェクトindexのリストを返すための struts-rest-plugin メソッドに取り組んでいます。それは本当にうまくいきます。Fruitxmljson

モデルクラス:

class Fruit {

    private String name;
    private double price;

    // constructor

    // getter/setter

    // equals and hash method

}

そして、xml/json 出力のモデル オブジェクトから一部のプロパティ (価格など) を除外したいと考えています。ラッパークラスでラップできることはわかっていますが、やるべきことがたくさんあるようです。

私が試したこと:

@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>
...

動いていない。助けてください。ありがとう。

4

1 に答える 1

0

結果から必要なフィールドを省略するには、XStream アノテーションを使用する必要があります。

于 2013-08-27T19:10:35.413 に答える