Spring MVC dostarczanie danych do formularza

0

Witam,
chciałem się zapytać osób bardziej doświadczonych w Spring MVC o dostarczanie danych do formularza.
MIanowicie mam formularz który zawiera np 7 komponentow select (combobox) teraz aby dostarczyc do nich dane musze wykonac

 
	@RequestMapping(method = RequestMethod.GET)
	public String prepareForm( Model model) {
		model.add("countryList1", service.getCountryList1());
                model.add("countryList2", service.getCountryList2());
                model.add("countryList3", service.getCountryList3());
                model.add("countryList4", service.getCountryList4());
                model.add("countryList5", service.getCountryList5());
                model.add("countryList6", service.getCountryList6());
                model.add("countryList7", service.getCountryList7());
		return "account/createForm";
	}

Oczywiscie jak mam inne formularze ktore zawieraja czesc tych komponentow znow musze powielac ten kod.

Czy nie można zrobić coś takiego jak w JSF 2

    @Produces("countryList1")
public List provideCountryList1( Model model) {return service.getCountryList1()}
0

można, adnotacja @ModelAttribute to robi.

czyli u Ciebie bedzie cos w stylu
@ModelAttribute("countryList1")
public List provideCountryList1( Model model) {return service.getCountryList1()}

//edit a raczej

@ModelAttribute("countryList1")
 public List provideCountryList1() {return service.getCountryList1()}

bo model tam juz nie potrzebny ; )

0

No tak tylko to nie rozwiazuje problemu ze musze to umiescic w kazdym kontrolerze.
Chcialbym uzyskac "madrzejsze zachowanie" tzn jezeli na stronie JSP ktos uzyje

${countryList1} to spring wywola sam odpowiednia metode z @ModelAttribute("countryList1") która UWAGA niekoniecznie musi byc w tym samym kontrolerze

Idealnia chcialbym uzyskac

 
class DictionaryProviders{
@ModelAttribute("countryList1")
public List provideCountryList1(){...}

@ModelAttribute("countryList2")
public List provideCountryList2(){...}

}

Klasyczne odwrócenie kontroli ...powiedz mi o chcesz a ja Ci to dostarcze

0

nie kojarze nic takiego co by dzialalo jak chcesz. Ale mozesz dać ModelAttribute w jakiejs klasie nad Twoimi kontrolerami i juz ; )

1 użytkowników online, w tym zalogowanych: 0, gości: 1