2013-08-29 43 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

相关问题