カスタムリターンクラス
必要:
多くの場合、Jsonデータを渡すときにサーバーへのブラウザーの要求が成功したかどうかを判断する必要があるため、ラッパークラスを使用して、Jsonデータを返すときにデータをラップし、いくつかのステータスコードと成功または失敗のメソッドを追加します。
コード:
public class Msg {
private int code;//请求响应码 200成功,400失败
private String msg;//提示信息
private Map<String,Object> data = new HashMap<>();//返回数据
public static Msg success(){
Msg result = new Msg();
result.setCode(200);
result.setMsg("请求成功!");
return result;
}
public static Msg fail(){
Msg result = new Msg();
result.setCode(400);
result.setMsg("请求成功!");
return result;
}
public Msg add(String key, Object value){
this.data.put(key, value);
return this;
}
//此处省略getter setter方法......
コントローラでの使用
return Msg.success().add("pageInfo",page);
この連鎖がどのように行われるかに注目し、連鎖操作が可能になるようにメソッドを定義する方法を検討してください。
説明:
- まず、Msg.success()。add()、successは静的メソッドであるため、クラスname.methodnameで直接呼び出すことができます。
- このとき、successメソッドは、成功ステータスコードと情報が追加されたオブジェクトを返すため、このオブジェクトにはaddメソッドがあります(クラスで定義されているため)。
- addメソッドはキーと値を受け取り、それをクラスメンバー変数データに入れます。このデータもこのオブジェクトに配置されます。このメソッドのthisメソッドは、このオブジェクトを参照します。