1

Spring MVC @ResponseBody で Jackson を使用して、jqGrid の JSON を生成しています。jqGrid で必要な JSON には、次のような POJO を使用しています。

public class Grid<T> implements Serializable {

  private int totalPages;
  private int currentPage;
  private long totalRecords;
  private List<T> listData;

  // getter & setter...

}

次のようなHibernate JPAから取得したドメインモデルを配置しています(一部の属性に遅延フェッチがあるため、プロキシである可能性があります)。

@Entity @Cacheable
public class Item implements Serializable {

  @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
  private Long id;

  @Version
  private int version;

  @NotBlank
  private String name;

  @JsonIgnore @Lob @Basic(fetch=FetchType.LAZY)
  private byte[] image;

  // getter and setter...
}

これはSpring MVCコントローラーの私のコードです:

@RequestMapping(value="listgrid", method=RequestMethod.GET, produces="application/json")
@ResponseBody
public Grid<T> listGrid(@RequestParam(value="page", required=false) Integer page,
  @RequestParam(value="rows", required=false) Integer rows,
  @RequestParam(value="sidx", required=false) String sidx,
  @RequestParam(value="sord", required=false) String sord,
  @RequestParam(value="_search", required=false) String search) {

  // ...
  Grid<T> grid = new Grid<T>();
  Page<T> objPage = retrieveData(...);
  grid.setListData(objPage.getContent());
  grid.setCurrentPage(objPage.getNumber()+1);
  grid.setTOtalPages(objPage.getTotalPages());
  grid.setTotalRecords(objPage.getTotalElements());

  return grid;
}

@JsonIgnore をイメージ属性に入れましたが、結果の JSON には常にイメージが含まれます。この属性を無視するには?

4

1 に答える 1

0

getter で @JsonIgnore を試しましたか?

于 2012-09-21T11:12:30.290 に答える