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

Java 如何使用@RequestParam有效地处理多个用户输入,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在使用@RequestParam捕获前端用户输入,并通过控制器将其传递到后端,然后将其保存到数据库中 到目前为止,controller处理请求的方式如下: @RequestMapping(value = "/myURL", method = RequestMethod.POST) public String saveCustomer( @RequestParam("customerFirstName") String customerFirstName,

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

到目前为止,controller处理请求的方式如下:

@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显然是不现实的,有没有其他的解决方法?

你应该创建一个使用JSON的提供者,因此,您可以发送复杂的Java\JS对象,而不仅仅是原语。

您可以直接保存客户

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

    customerService.saveCustomer(customer);
    return null;
}

Spring可以数据绑定POJO,只要您的属性没有参数构造函数和设置器。

如果您要处理多个@RequestParam,您可以选择bean类方法

控制器:

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


有关@RequestBody

的更多信息,请查看此内容。为什么您会说它不现实?@cadams编写包含10个参数的方法既耗时又混乱,您不这么认为吗?也许只需在参数列表之外执行用户输入,并将信息存储在变量中,然后使用这些变量作为参数?不需要JSON。Spring可以将表单属性数据绑定到POJOs@NeilMcGuigan您能否修改您的答案以将数据绑定表单属性添加到POJO?因此,目前在前端,我有用户将键入的表单,我使用
@RequestParam
捕获这些数据,如果按照您的建议执行,您如何确保我可以将用户输入数据传递给
客户
?我不理解您的问题。在您的案例中不需要使用@RequestParam
public class Customer{
    private String customerFirstName;
    private String customerLastName;
    //constructors, getters and setters
}