У меня есть таблица с компьютерами и таблица с их характеристиками.
Когда в таблице с компьютерами я нажимаю на конкретный комп, открываются его характеристики. проблема в том, что когда я пытаюсь редактировать эти характеристики, я не знаю как мне вернуться обратно к характеристикам конкретной модели. что нужно прописать в return
в данном случае?
Вот мой контроллер. Внизу метод editChar, в котором необходимо правильно указать в return куда возвращаться:
@Controller
public class PcCharsController {
final private PcRepository pcRepository;
final private PcCharactRepository pcCharactRepository;
public PcCharsController(PcRepository pcRepository, PcCharactRepository pcCharactRepository) {
this.pcRepository = pcRepository;
this.pcCharactRepository = pcCharactRepository;
}
@GetMapping("pc/{id}/characts")
public String pcCharList(@PathVariable Long id, Model model) throws Exception{
Pc pc = pcRepository.findById(id).orElseThrow(() -> new Exception("PostId " + id + " not found"));
List<PcCharacts> pcChars = pc.getCharacts();
model.addAttribute("model", pc.getModel());
model.addAttribute("pcChars", pcChars);
return "charList";
}
@PostMapping("pc/{id}/characts")
public String addChar(@RequestParam Long id,
@RequestParam String name,
@RequestParam String value,
Model model) throws Exception {
Pc pc = pcRepository.findById(id).orElseThrow(() -> new Exception("PostId " + id + " not found"));
PcCharacts pcCharacts = new PcCharacts(name, value, pc);
pcCharactRepository.save(pcCharacts);
List<PcCharacts> pcChars = pc.getCharacts();
model.addAttribute("pcChars", pcChars);
return "redirect:";
}
@GetMapping("/charact/{pcChars}")
public String editCharact(@PathVariable PcCharacts pcChars, Model model){
model.addAttribute("pcChars", pcChars);
return "editPcChar";
}
//HERE IS A PROBLEM
@PostMapping("pc/characts/save") //OR HERE
public String charSave(@RequestParam String name,
@RequestParam String value,
@RequestParam("id") PcCharacts pcChars){
pcChars.setName(name);
pcChars.setValue(value);
pcCharactRepository.save(pcChars);
return "redirect:/pc/{id}/characts"; //HERE
}
@GetMapping("/charact/delete/{id}")
public String deletePc(@PathVariable("id") PcCharacts pcChars){
pcCharactRepository.delete(pcChars);
return "redirect:/pc/{id}/";
}
}
По хорошему, Вам нужно сделать редирект.
Например:
return "redirect: pc/{id}/characts"
Если pc/{id}/characts
у Вас маршрут для страницы с характеристиками (если нет сами подставите нужный)
return "redirect: pc/" + pcChars + "/characts";
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
День! Есть планшет на android с установленным на нём приложением обратной связиСуть такая - лежит такой планшет на кассе в магазине и каждый желающий...
Ребята я создал конвертор с кириллицы на латиницуНиже предоставил код, он не выдает ошибку правильно компилирует