以下は、Spring Web MVC 3.1.1 に基づくプロジェクトのスニペットです。Json のシリアル化は、Jackson を介して行われます。
URL にマップされたコントローラーがあり、すべて正常に動作しています。
@Controller
@RequestMapping("/vod")
public class VODController {
private Configuration configuration;
private SearchAPI searchAPI;
@RequestMapping(method = RequestMethod.GET, params = "cmd=list")
public @ResponseBody GetAssetsReply listVODAssets(long offset, int limit) {
SearchVODAssetRequest searchVODAssetRequest = new SearchVODAssetRequest();
//.... some irrelevant code
return searchAPI.searchVODAssets(searchVODAssetRequest);
}
}
これはGetAssetsReply
次のとおりです。
public class GetAssetsReply {
private long totalAssets;
private List<VODAsset> assets = new LinkedList<VODAsset>();
// Getters and setters removed for simplicity
}
VODAsset
インターフェースです:
public interface VODAsset {
public String getName();
}
そして、これはその実装です:
public class AssetElement implements VODAsset {
private String id;
private String name;
private double duration;
// Getters and setters removed for simplicity
}
最後に質問: コントローラーは予想される結果を返しますが、欠点が 1 つあります。名前に加えて、ID と期間を含む VOD アセットを返します。私が期待するのは、オブジェクトが上記のVODAsset
インターフェースによって指されているという事実のために、名前だけを取得することです。どうすればこの動作を取得できますか? どんな助けでも大歓迎です