以下是基于 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
}
最后是问题:控制器向我返回了一个不利的预期结果 - 除了名称之外,它还返回 VOD 资产及其 ID 和持续时间。由于对象是由上面的VODAsset
接口指向的,我期望得到的只是名称。我怎样才能得到这种行为?任何帮助将非常感激