是否可以在Spring MVC中使用@ResponseEntity转到另一个页面?

时间:2017-05-28 20:38:35

标签: spring jsp spring-mvc

我有一个页面上有很多项目。每个人都有一个按钮,该按钮应该将用户带到另一个具有另一个布局的jsp,以获取有关当前项目的详细信息。我是否可以使用ResponseEntity执行此操作,因为它不会在任何地方重定向?或者可能有更好的方法来实现它并将我的对象发送到页面?我试过" ResponseEntity.created(location).body(object)"但它没有完成这项工作,我留在同一页面上。我可能只是误用了它?

我的方法:

@RequestMapping(value = {"/details+{id}"}, method = RequestMethod.GET)
    public ResponseEntity<Item> details(@PathVariable("id") int id) {        
        Item item = itemService.findById(id);

        if(item == null){
            return new ResponseEntity<Item>(HttpStatus.NO_CONTENT);
        }
        return new ResponseEntity<Item>(item, HttpStatus.OK);
    }

1 个答案:

答案 0 :(得分:2)

看看ModelAndView。它的目的是返回带有附加模型的视图。因此,对于id的每个值,您可以决定返回一对视图和模型。

@RequestMapping(value = {"/details+{id}"}, method = RequestMethod.GET)
public ModelAndView details(@PathVariable("id") int id) {

   String viewToUse;
   Map<String, Item> modelToUse;

   if(id == ...) {
      viewToUse = ...
      modelToUse = ...
   } else if (id == ...) {
      viewToUse = ...
      modelToUse = ...  
   } else if (id == ...) {
      viewToUse = ...
      modelToUse = ...  
   }

   return new ModelAndView(viewToUse, modelToUse);
}