2013-08-29 118 views
0

將這兩種方法轉換爲一種方法的最佳方法是什麼?將兩種方法合併爲一種

@RequestMapping(method = RequestMethod.GET) 
    public ResponseEntity<String> dbStatus() { 
     return statusService.isDbAlive() ? RESPONSE_DB_UP : RESPONSE_DB_DOWN; 
    } 

    @RequestMapping(method = RequestMethod.GET) 
    public ResponseEntity<String> appStatus() throws IOException { 
     return statusService.isAppAlive() ? RESPONSE_APP_UP : RESPONSE_APP_DOWN; 
    } 

我能回到ResponseEntity<String>List

+0

解釋你正在嘗試做什麼。以上將會在初始化時拋出錯誤。 'List >'不是默認支持的返回類型,如果您瞭解'ResponseEntity'是什麼,就沒有意義。 –

+0

我試圖從'StatusService'類中檢查數據庫和應用程序狀態,並返回兩者的狀態,最好以'ResponseEntity '的形式返回。我只需要一個'@RequestMapping(method = RequestMethod.GET)'而不是兩個。 – invictvs1

回答

1

你將不得不返回類似JSON的東西,顯示兩個檢查的結果。例如

{"isAppAlive" : true, "isDbAlive": false} 

您可以建立這個JSON字符串自己

@RequestMapping(method = RequestMethod.GET) 
public ResponseEntity<String> getStatus() throws IOException { 
    String json = "{\"isAppAlive\":" + statusService.isAppAlive() + ",\"isDbAlive\""+ statusService.isDbAlive() +"}"; 
    return new ResponseEntity<String>(json, HttpStatus.OK); 
} 

或建立像

public class Status { 
    // use private and getters/setters 
    public boolean isAppAlive; 
    public boolean isDbAlive; 
} 

一類,並讓Spring序列化Status對象創建

@RequestMapping(method = RequestMethod.GET) 
public ResponseEntity<Status> getStatus() throws IOException { 
    Status status = new Status(); 
    status.isAppAlive = statusService.isAppAlive(); 
    status.isDbAlive = statusService.isDbAlive(); 
    return new ResponseEntity<Status>(status, HttpStatus.OK); 
} 

你總是可以讓statusService有一個方法getStatus()返回一個Status對象,該對象已經設置了它的字段。

然後,您的客戶端可以解析JSON並檢查每個狀態。

0
@RequestMapping(value = "/testurl", 
     method = { RequestMethod.GET, RequestMethod.POST }) 
    public ModelAndView dbStatus() { 

      List<String> status = new ArrayList<String>(); 
      status.add (statusService.isDbAlive()); 
      status.add (statusService.isAppAlive()); 
      ModelMap modelMap = new ModelMap(); 
      modelMap.put("status ", status); 
      return new ModelAndView("statuspage.jsp", modelMap); 

    } 
+0

如果我們至少可以知道列表中的哪個元素映射到哪個狀態,那將會很好。 –

+0

是的,你是對的 – Prabhakaran