I am new to Java Spring Framework and I have a requirement in my new project.
Using the Spring framework, I have a POJO class with set and get methods.
I also have intermediate java service and web classes. i have used the
tags to map from jsp to bean class and able to perform all the action with a single object.But my problem is how can i do the same work for more then one object(record).
In simple word:
How do I insert 7 rows(records) into the database table at one time, using input data from my jsp page. How do I accept input parameters from my jsp page and create 7 objects that correspond to 7 rows and then insert them on the click of submit button?
Please provide some guidance for this.
解决方案
I would achieve that by having another POJO serving as a container with a list of your POJOs inside.
This would look like this :
public class PojoForm {
private List pojos;
public List getPojos() {
return pojos;
}
public void setPojos(List pojos) {
this.pojos = pojos;
}
}
Then in the controller, use this container instead of the actual pojo as a model attribute.
@ModelAttribute("pojoForm")
public PojoForm populatePojos() {
// Don't forget to initialize the pojos list or else it won't work
PojoForm pojoForm = new PojoForm();
List pojos = new ArrayList();
for(int i=0; i<2; i++) {
pojos.add(new Pojo());
}
pojoForm.setPojos(pojos);
return pojoForm;
}
@RequestMapping(method=RequestMethod.POST)
public String saveForm(@ModelAttribute("pojoForm") PojoForm pojoForm) {
for(Pojo pojo : pojoForm.getPojos()) {
service.save(pojo);
}
return "theview.jsp";
}
Then the view should look something like this :
a, b and c being the properties of the Pojo class.
You can also directly loop on the list like this :