后台系统提供一个实体类Item,其中某个String类型的变量为image,数据库中是字符串,含逗号分隔。
前台系统通过api返回这个实体类。用el表达式返回到前端,但是前端需要一个images参数,即item.images,它是一个数组。那么前台系统应该怎么做?
写一个实体类继承ItemNew,添加getImages()方法,因为el表达式调用的是get方法,所以在getImages()方法中返回一个String[],如下:
public String[] getImages() {
return StringUtils.split(super.getImage(), ',');//这种写法不需要考虑super.getImage()是否为空
}
那么在调用api时返回的类型改成新写的实体类
MAPPER.readValue(respBody, ItemNew.class);这里不是强转的问题,而是解析的问题ItemNew这个类拥有所有父类的变量。关键是这个ItemNew在前端用el表达式时可以调用getImages()方法。