在Spring控制器中获取参数的简便方法?

时间:2019-06-13 19:13:30

标签: java spring forms servlets

我在Spring应用程序中有一个控制器,我想用它来处理更改CSS的HTML表单。因此,我将表单的动作设置为“ changeCSS”,然后控制器从那里接管。我的问题是:我如何真正获得在表单中提交的值?我在网上找到的资源过于复杂,希望我创建我不需要的模型对象。

我要查找的值称为color1,color2等,它们应替换String.format()方法中的硬编码颜色值。

@RequestMapping(value = "changeCSS", method = RequestMethod.GET)
public String changeCss() {

    BufferedWriter writer;
    try {
        String colorNewSettings3 = String.format(colorSettings.get("3"), "#000");
        String colorNewSettings4 = String.format(colorSettings.get("4"), "#fff");
        String path = context.getRealPath("/static/css/custom.css");
        BufferedWriter out = new BufferedWriter(new FileWriter(path));
        out.write(colorNewSettings3+colorNewSettings4);
        out.close();
    } catch (IOException e) {
        e.printStackTrace(); //Use a Logger here
    }

    return "settings";
}

1 个答案:

答案 0 :(得分:0)

获取表单参数的最简单方法如下例所示。这要求您创建一个Model对象,我认为这不是一个过分的追求。

https://spring.io/guides/gs/handling-form-submission/

现在,如果您不想这样做,而是坚持使用GET选择每个值,那么下面的代码段就可以做到这一点。

http://localhost:8080/changeCSS?color1=green&color2=red

@RequestMapping(value = "/changeCSS", method = RequestMethod.GET)
public String changeCss(@RequestParam("color1") String color1, @RequestParam("color2") String color2) {


     ....

}

参考:https://www.baeldung.com/spring-requestmapping