Легкий способ заполнения Javabeans на основе параметров запроса

У меня class простого человека:

package simpleApp.entities; public class Person { private String name; private String secondname; public void setSecondname(String cognome) { this.secondname = cognome; } public String getSecondname() { return secondname; } public void setName(String nome) { this.name = nome; } public String getName() { return name; } } 

и простую страницу html:

   
name:
second name:

и простой сервлет:

 public class Person extends HttpServlet { private static final long serialVersionUID = 1L; public Person() { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //LOOK HERE: simpleApp.entities.Person p = new simpleApp.entities.Person(); p.setName(request.getParameterValues("name")[0]); p.setSecondname(request.getParameterValues("secondname")[0]); response.sendRedirect("/simpleApp/index.html"); } } 

Есть ли способ автоматизировать настройку параметров?

Что-то волшебное, как

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { simpleApp.entities.Person p = new simpleApp.entities.Person(); Magic.justSetEverything(p, request); // NOT NEEDED ANYMORE!!! MUAHAHAHA more time for coffee // p.setName(request.getParameterValues("name")[0]); // p.setSecondname(request.getParameterValues("secondname")[0]); response.sendRedirect("/simpleApp/index.html"); } 

    Для этого часто используется Apache Commons BeanUtils .

     BeanUtils.populate(bean, request.getParameterMap()); 

    Вот и все.

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


    Не связанный с конкретным вопросом, использование getParameterValues() в этом конкретном примере. Просто используйте getParameter() .

     p.setName(request.getParameter("name")); p.setSecondname(request.getParameter("secondname")); 
    Давайте будем гением компьютера.