如何使用@RequestParam有效地处理多个用户输入

时间:2015-07-23 18:25:45

标签: java spring spring-mvc

我正在使用@RequestParam来捕获前端用户输入并通过控制器将其传递到后端并将其保存到数据库中。

到目前为止,控制器处理这样的请求:

@RequestMapping(value = "/myURL", method = RequestMethod.POST)
    public String saveCustomer(
            @RequestParam("customerFirstName") String customerFirstName,
            @RequestParam("customerLastName") String customerLastName,) {

        Customer customer = customerService.saveCustomer(
                customerFirstName, customerLastName);
        return null;
    }

嗯,我猜这很好,因为我只有两个@RequestParam两个争论,但是我面对的是一个有超过10个参数的表,我认为使用@RequestParam显然不太现实,是否有另一个在这附近?

3 个答案:

答案 0 :(得分:1)

您可以直接保存客户。

@RequestMapping(value = "/myURL", method = RequestMethod.POST)
public String saveCustomer(Customer customer) {

    customerService.saveCustomer(customer);
    return null;
}

只要你的属性有一个no-args构造函数和setter,Spring就可以对POJO进行数据绑定。

答案 1 :(得分:0)

您应该创建一个使用JSON的提供程序,这样您就可以发送复杂的Java \ JS对象而不仅仅是原语。

答案 2 :(得分:0)

如果您打算处理多个@RequestParam,您可以随时选择bean类方法。

控制器:

@RequestMapping(value = "/myURL", method = RequestMethod.POST)
public String saveCustomer(
        @RequestBody Customer customer) {
    return null;
}

豆:

public class Customer{
    private String customerFirstName;
    private String customerLastName;
    //constructors, getters and setters
}

请查看此link以获取有关@RequestBody

的更多信息