2017-05-28 21 views
0

我有一個頁面上有很多項目。每個人都有一個按鈕,這應該讓用戶到另一個佈局的另一個jsp有關當前項目的詳細信息。我甚至可以用ResponseEntity來做到這一點,因爲它不會在任何地方重定向?或者可能有更好的方法來做到這一點,併發送我的對象到頁面?我嘗試了「ResponseEntity.created(location).body(object)」,但它沒有完成這項工作,我停留在同一頁面上。可能是我只是用它錯了?是否可以在Spring MVC中使用@ResponseEntity轉到另一個頁面?

我的方法:

@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); 
    } 

回答

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); 
} 
+0

那if/else鏈有點難看:) –

+1

是的。我實際上正在考慮建議一個更好的設計模式(即狀態模式)來優雅地處理分支。但我發現它有點不合理:) – Bnrdo

相關問題