Cześć,
Nie potrafię poradzić sobie z pewnym problemem mianowicie.
Mam taki widok w kontrolerze:
@Autowired
EmployeeService employeeService;
@Autowired
AddressService addressService;
@Autowired
AddressRepository addressRepository;
@GetMapping("/new")
public String showCreateFormForEmployeeAndAddresses(Model model) {
for(int i = 1; i<=2; i++){
addressService.newAddress(new Address());
}
model.addAttribute("employee", new Employee()).addAttribute("form", addressRepository);
return "new_employee_form";
}
W kontrolerze tym, mam wstrzykniętą warstwę addressRepository z której korzystam w widoku, a nie chcę aby tak było. Chcę przejść przez warstwę addressService.
addressRepository dla atrybutu "form" odwołuje się w widoku bezpośrednio do:
//klasa addressRepository
public List<Address> addresses = new ArrayList<>();
Próbuję zrobić tak aby zachować warstwę pośrednią Service i dopiero z niej wskazać na Listę w addressRepository ale nie wiem jak to zrobić.
Reasumując ... chciałbym aby widok miał taką postać:
@GetMapping("/new")
public String showCreateFormForEmployeeAndAddresses(Model model) {
for(int i = 1; i<=2; i++){
addressService.newAddress(new Address());
}
model.addAttribute("employee", new Employee()).addAttribute("form", addressService);
return "new_employee_form";
}
następnie abym z poziomu klasy addressService wskazał na listę znajdującą się w addressRepository.