我有一个返回JSON的控制器:
public @ResponseBody ResourcesModel data(@PathVariable(value = "id") long id, @PathVariable(value = "page") int page){
//populate model
}
以下是该模型的相关部分:
public class ResourcesModel {
private boolean showLeft;
public boolean getShowLeft(){
return getPage() > 1;
}
public void setShowLeft(boolean b) { /*doesn't do anything*/ }
}
没有支持字段,showLeft不会被序列化。在序列化期间,它只是查看字段并忽略getter。我发现这很烦人......如果被忽略,封装的重点是什么?
我知道有一些解决方法,比如在控制器中设置showLeft,但是我想避免这种情况并使用适当的OO。有任何建议给序列化器提示吗?
答案 0 :(得分:0)
我认为你必须将@JsonSetter添加到showLeft注释字段
public class ResourcesModel {
private boolean showLeft;
public boolean getShowLeft(){
return getPage() > 1;
}
@JsonSetter
public void setShowLeft(boolean b) { /*doesn't do anything*/ }
}