2017-07-03 39 views
0

我試圖使用GET參數來改變模型屬性,它創建了一個像返回視圖一樣的對象的表。具體來說:我想發送一個列的名稱作爲一個GET參數,並突出顯示該列的着色方式不同。我目前的設置是這樣的:Spring:在ModelAttribute中使用GET參數

private String highlightedCol; 

    @ModelAttribute("model") 
    public Model populateModel() { 
    Model model = new Model(); 
    generateModel(); 
    //Use Highlighted Col 
    return model; 
    } 

    @RequestMapping("/index") 
    public String getIndex(@RequestParam(value="ts", required = false, defaultValue="") String col) { 
    highlightedCol = col; 
    return "index"; 
    } 

我在使用中的ModelAttribute的「關口」參數,因爲的ModelAttribute獲取RequestMapping之前執行的麻煩。我將如何去使用我的模型的GET參數?

回答

0

您可以簡單地使用method=RequestMethod.GET。謹防GETPOST方法。確保你想讀取/取得日期,請使用GET。如果你想使用插入數據,使用POST

@RequestMapping(value="/your_url", method=RequestMethod.GET) 
@ModelAttribute("model") 
+0

這是否意味着將@RequestMapping放在populateModel方法的上方或擴展現有的方法?我可以從getIndex方法訪問col參數,但只能在模型已經生成之後。 – NMLcygni

+0

您可以使用'@RequestMapping'作爲任何類型的URL。但在這裏你可以輕鬆調用'populateModel(String col)'並傳遞參數' – varman

+0

我如何告訴控制器哪個html文件,我想讓他顯示?目前我通過在get Index方法中返回「index」來完成此操作。如果我不再有這種方法,我該怎麼做? – NMLcygni

0

問我的問題,一個同事後,他想出了這樣的回答: 我擺脫了@ModelAttribute註解的,改變了getIndex方法是:

@RequestMapping("/index") 
    public ModelAndView getIndex(@RequestParam(value="ts", required = false, defaultValue="") String col) { 
    highlightedCol = col; 

    Map<String, Object> model = new HashMap<>(); 
    model.put("model", populateModel()); 

    return new ModelAndView("index", model); 
    } 

這樣的getIndex方法之前populateModel方法不再執行,讓我創建模型,在那裏我需要的那場之前設置highlightedCol。

相關問題