Na wstępie chcę zaznaczyć, że dopiero zaczynam naukę ze Spring MVC i chciałbym prosić o pomoc.
Posiadam stronę z formularzem wraz z polem wyboru. Zakładam możliwość dopisania obiektu do tej listy poprzez kolejną stronę z formularzem. I tu pojawia się moje pytanie, w jaki sposób po dodaniu tej nowej opcji wrócić do poprzedniego formularza w taki sposób, by dodana opcja znajdowała się w polu wyboru oraz poprzednio podane dane zostały wpisane ponownie.
@Controller
@RequestMapping("/szkolenie")
public class SzkolenieController {
@Autowired
private SzkolenieDAO szkolenieDAO;
@Autowired
private NazwaSzkoleniaDAO nazwaSzkoleniaDAO;
@RequestMapping("/dodaj")
public ModelAndView dodawanieSzkolenia() {
ModelAndView modelAndView = new ModelAndView("dodajSzkolenie");
Szkolenie szkolenie = new Szkolenie();
modelAndView.addObject("szkolenie", szkolenie);
modelAndView.addObject("nazwySzkolen", nazwaSzkoleniaDAO.findAll());
return modelAndView;
}
@RequestMapping(value = "dodaj", method = RequestMethod.POST)
public String zapiszSzkolenie(@Valid Szkolenie szkolenie, BindingResult binding) {
if (binding.hasErrors()) {
return "dodajSzkolenie";
} else {
System.out.println(szkolenie);
szkolenieDAO.save(szkolenie);
return "redirect:/szkolenie/lista.htm";
}
}
}
dodajSzkolenie.jsp
<form:form commandName="szkolenie" method="POST" action="dodaj.htm">
<table>
<tr>
<td><form:hidden path="id"/></td>
</tr>
<tr>
<td><form:label path="nazwaSzkolenia">Nazwa szkolenia:</form:label></td>
<td><form:select items="${nazwySzkolen}" path="nazwaSzkolenia.id" itemValue="id"
itemLabel="nazwa"></form:select></td>
<td><a href="<c:url value="/nazwaSzkolenia/dodaj.htm"/>">Nowy</a></td>
</tr>
<tr>
<td><form:label path="nrRejestru">Nr rejestru:</form:label></td>
<td><form:input path="nrRejestru" required="true"/><form:errors
path="nrRejestru"/></td>
</tr>
<tr>
<td><form:label path="cena">Cena:</form:label></td>
<td><form:input path="cena" required="true"/><form:errors
path="cena"/></td>
</tr>
<tr>
<td><form:label path="dataZakonczenia">Data zakończenia:</form:label></td>
<td><form:input path="dataZakonczenia" placeholder="rrrr-mm-dd" required="true"/><form:errors
path="dataZakonczenia"/></td>
</tr>
<tr>
<td><form:label path="waznyPrzez">Ważność:</form:label></td>
<td><form:input path="waznyPrzez" required="true"/><form:errors
path="waznyPrzez"/></td>
</tr>
<tr>
<td><form:button>Zapisz</form:button></td>
</tr>
</table>
</form:form>
@Controller
@RequestMapping("/nazwaSzkolenia")
public class NazwaSzkoleniaController {
@Autowired
private NazwaSzkoleniaDAO nazwaSzkoleniaDAO;
@RequestMapping("/dodaj")
public ModelAndView dodajNazwaSzkolenia() {
ModelAndView modelAndView = new ModelAndView("dodajNazwaSzkolenia");
NazwaSzkolenia nazwaSzkolenia = new NazwaSzkolenia();
modelAndView.addObject("nazwaSzkolenia", nazwaSzkolenia);
modelAndView.addObject("nazwySzkolen", nazwaSzkoleniaDAO.findAll());
return modelAndView;
}
@RequestMapping(value = "dodaj", method = RequestMethod.POST)
public String zapiszNazwaSzkolenia(@Valid NazwaSzkolenia nazwaSzkolenia, BindingResult binding) {
if (binding.hasErrors()) {
return "dodajNazwaSzkolenia";
} else {
System.out.println(nazwaSzkolenia);
nazwaSzkoleniaDAO.save(nazwaSzkolenia);
return "redirect:/szkolenie/dodaj.htm";
}
}
}
dodajNazwaSzkolenia.jsp
<form:form commandName="nazwaSzkolenia" method="POST" action="dodaj.htm">
<table>
<tr>
<td><form:hidden path="id"/></td>
</tr>
<tr>
<td><form:label path="nazwa">Nazwa:</form:label></td>
<td><form:input path="nazwa" required="true"/><form:errors
path="nazwa"/></td>
</tr>
<tr>
<td><form:label path="skrot">Skrót:</form:label></td>
<td><form:input path="skrot" required="true"/><form:errors
path="skrot"/></td>
</tr>
<tr>
<td><form:button>Zapisz</form:button></td>
</tr>
</table>
</form:form>