Spring:在ModelAttribute中使用GET参数

时间:2017-07-03 06:41:37

标签: java spring

我正在尝试使用GET参数来更改模型属性,该属性创建一个像返回视图的对象一样的表。具体来说:我想将列的名称作为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中的“col”参数时遇到问题,因为ModelAttribute在RequestMapping之前执行。我如何为我的模型使用GET参数?

2 个答案:

答案 0 :(得分:0)

您只需使用method=RequestMethod.GET即可。请注意GETPOST方法。确保您想要阅读/获取日期,请使用GET。如果要使用插入数据,请使用POST

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

答案 1 :(得分:0)

在向同事询问我的问题后,他想出了这个答案: 我摆脱了@ModelAttribute Annotation并将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);
  }

这样populateModel方法就不再在getIndex方法之前执行,允许我在创建模型之前设置highlightCol,我需要该字段。