2015-12-06 3 views
0

Возможно ли, и если да, то как можно создать один объект и поместить его в другой объект с помощью Java Spring Form? Потому что мне нужно создать объект «Двигатель» и поместить его в объект «Автомобиль». Вот мои коды «Двигатель» и «Car»:Два класса в одной форме Java Spring

public class Engine { 
    private float volume; 
    private int id; 

    public float getVolume() { 
     return volume; 
    } 

    public void setVolume(float volume) { 
     this.volume = volume; 
    } 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 
} 

public class Car { 
    private int id; 
    private Engine engine; 
    private String model; 

    public Engine getEngine() { 
     return engine; 
    } 

    public void setEngine(Engine engine) { 
     this.engine = engine; 
    } 

    public String getModel() { 
     return model; 
    } 

    public void setModel(String model) { 
     this.model = model; 
    } 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 
} 

Я использовал этот учебник: http://www.codejava.net/frameworks/spring/spring-mvc-form-handling-tutorial-and-example , чтобы узнать, как создать форму.

Я создал эту форму:

<form:form action="register" method="post" commandName="carForm"> 
    <table border="0"> 
     <tr> 
      <td>Model:</td> 
      <td><form:input path="model" /></td> 
     </tr> 
     <tr> 
      <td>Volume:</td> 
      <td><form:password path="volume" /></td> 
     </tr> 
     <tr> 
      <td colspan="2" align="center"><input type="submit" value="Register" /></td> 
     </tr> 
    </table> 
</form:form> 

Так это любой способ создать объект Engine с «объемом» от формы и последующим вводом этого «двигатель» объект в объект «автомобиль»? Поскольку каждый пример форм, которые я нахожу в Google, просто создает один объект.

+0

Вы говорите, вы хотите объект Car со всеми переменными/геттеры/сеттеры от объекта двигателя? – Aeseir

+0

Я хочу, чтобы объект Car имел объект Engine внутри. Поэтому я могу использовать позже, например car.engine.getVolume(). – Mateusz

ответ

0

Основываясь на комментарии, я понимаю, что вы хотите объект Engine внутри объекта Car, чтобы вы могли получить специфику объекта Engine.

У вас есть два варианта:

1) Объявить объект двигателя внутри объекта Car, как вы делали:

public class Car { 

private Engine engine; 

// getters and setters 

} 

2) Используйте мощные возможности наследования.

public class Car extends Engine { 

private int id; 

private String model; 

// extending Engine object gives you direct access to Engine objects variables 

} 

Используйте модель наследования таким образом, когда вы создаете форму для автомобиля вы называете переменный двигатель без использования «двигателя.».

0

Я нашел решение моей проблемы, вот моя форма:

<form action="/Lab05/submitAdmissionForm.html" method="post"> 
    <p> 
     Pojemnosc : <input type="number" step="0.1" name="volume" /> 
    </p> 
    <p> 
     Model : <input type="text" name="model" /> 
    </p> 
    <input type="submit" value="Submit" /> 
</form> 

А вот мой контроллер:

@RequestMapping(value = "/submitAdmissionForm.html", method = RequestMethod.POST) 
public ModelAndView submitAdmissionForm(@RequestParam("volume") float volume, 
     @RequestParam("model") String model) { 

    ModelAndView modelView = new ModelAndView("AdmissionSuccess"); 
    Engine engine = new Engine(); 
    engine.setVolume(volume); 
    Car car = new Car(); 
    car.setEngine(engine); 
    car.setModel(model); 
    modelView.addObject("msg", "Details submited by you: Volume: " + car.engine.getVolume() + " Model: " + car.getModel()); 
    return modelView; 
} 

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

  • Нет связанных вопросов^_^