Несколько объектов в Model Spring
есть страница http://localhost:8080/classifier. где в верхнем меню выводится информация об авторизованном пользователе, есть кнопка "Добавить" нажав на которую открывается форма добавления новой записи в БД в таблицу Lu, будут еще другие формы, которые будут использоваться для добавления записей в таблицу.
Хотел бы уточнить можно ли в контроллере в методе для открытия страницы http://localhost:8080/classifier в модель передавать и объект, откуда можно получить данные пользователя и объект, который будем добавлять в таблицу в БД или так делать нельзя и есть другое решение?
Ниже привел класс контроллера. Проходил несколько курсов по Spring и везде показывалось что для добавления новой записи или редактирования нужно было перейти на другую страницу и там реализовать форму добавления/изменения, а мне хочется реализовать это во всплывающих окнах, поэтому решил в методе "showClassifierPage" через модель передать несколько объектов на страницу.
@Controller
@RequestMapping("/classifier")
public class ClassifierController {
private final LuServices luServices;
private final ModelMapper modelMapper;
@Autowired
public ClassifierController(LuServices luServices, ModelMapper modelMapper) {
this.luServices = luServices;
this.modelMapper = modelMapper;
}
@GetMapping()
public String showClassifierPage(Model model) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
PersonDetails personDetails = (PersonDetails) authentication.getPrincipal();
model.addAttribute("personDetails", personDetails);
model.addAttribute("luDTO", luServices.findByTagWith0());
model.addAttribute("newLuDTO", new LuDTO());
return "lu/index";
}
@PostMapping()
public String createLuWith0(@ModelAttribute("newLuDTO") LuDTO luDTO, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "lu/index";
} else {
luServices.addNewLu(convertToLu(luDTO));
return "redirect:/classifier";
}
}
private Lu convertToLu(LuDTO luDTO) {
return modelMapper.map(luDTO, Lu.class);
}
}