2015-07-23 2 views
-1

Я использую @RequestParam, чтобы поймать входной интерфейс пользователя и передать его на задний конец через контроллер и сохранить его в базе данных.Как эффективно обрабатывать несколько пользовательских входов с помощью @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 Params, я думаю, используя @RequestParam, по-видимому, не реалистично, есть ли еще один вокруг этого?

+0

Почему вы говорите, что это не реально? – cadams

+0

@cadams отнимает много времени и запутывает, чтобы написать метод, который принимает 10 параметров, не так ли? – OPK

+0

Возможно, просто выполните ввод пользователя вне списка аргументов и сохраните информацию в переменных, а затем используйте эти переменные в качестве параметров? – cadams

ответ

0

Вы должны создать провайдера для использования JSON, чтобы вы могли отправлять сложные объекты Java \ JS, а не только примитивы.

+0

В JSON нет необходимости. Spring может создавать свойства формы данных для POJO –

+0

@NeilMcGuigan Можете ли вы изменить свой ответ, чтобы добавить свойства формы данных в POJO? – OPK

1

Вы можете сохранить клиента напрямую.

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

    customerService.saveCustomer(customer); 
    return null; 
} 

Spring может POJO, привязка до тех пор, пока у вас есть конструктор без арг и сеттеры для ваших свойств.

+0

, так что в настоящее время в интерфейсе есть формы, которые пользователь будет вводить, и я использую '@ RequestParam', чтобы поймать эти данные, как вы убедитесь, что я могу передать пользовательские входные данные' Customer', если что-то делать вы предложили? – OPK

+0

Я не понимаю ваш вопрос. Нет необходимости использовать @RequestParam в вашем случае –

0

Если вы собираетесь иметь дело с несколькими @RequestParam, вы всегда можете выбрать подход класса класса.

Контроллер:

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

Bean:

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

Проверить это link за дополнительной информацией о @RequestBody

Смежные вопросы