при обновлении указанных c атрибутов объекта другие атрибуты получают нулевые значения - PullRequest
2 голосов
/ 20 июня 2020

это мой класс контроллера. У меня есть новое окно и окно редактирования. В новом окне предположим, что у меня есть 6 полей, поэтому, когда я заполняю все значения и нажимаю кнопку сохранения, значения сохраняются в базе данных, а в окне редактирования у меня есть 4 поля из этих 6 полей, я просто хочу отредактировать эти 4 поля, но когда я редактирую эти 4 поля, другие поля получают нулевые значения, это означает, что поля, которые я не хочу редактировать, они заполнены нулевыми значениями, предыдущие значения перезаписаны нулевыми значениями

@RequestMapping("/newbin")
public String showNewBinForm(Model model) {
    Bin bin=new Bin();
    model.addAttribute("bin",bin);
    List<Warehouse> warehouseDetails= wservice.listAll();
     model.addAttribute("warehouseDetails",warehouseDetails);
    return "new_bin";
}

@RequestMapping(value = "/savebin", method = RequestMethod.POST)
    public String saveBin(@ModelAttribute("bin") Bin bin) {
    
        service.save(bin);
        return "redirect:binwindow";
    }

@RequestMapping("/editbin/{id}")
public String showEditBinPage(@PathVariable(name = "id") Long id,Model model) {
    Bin bin = service.get(id);
model.addAttribute("bin", bin);
return "edit_bin";
}

Service-

[public class BinService {
         
        @Autowired
        private BinRepository repo;
         
        public List<Bin> listAll() {
            return repo.findAll();
        }
         
        public void save(Bin bin) {
            repo.save(bin);
        }
         
        public Bin get(long id) {
            return repo.findById(id).get();
        }

1 Ответ

0 голосов
/ 22 июня 2020

Я нашел решение этой проблемы, но оно будет довольно длинным, если у нас больше нет полей.

решение - на странице редактирования я разместил все поля и поля, которые я не хочу edit хранятся как скрытое поле, поэтому, когда мы нажимаем кнопку New и заполняем все необходимые данные, чтобы данные сохранялись в полях класса Entity (или в базе данных), поэтому, если мы нажимаем на страницу редактирования, мы размещаем атрибуты, которые хотим отредактировать и другие атрибуты в качестве скрытого поля, поэтому при нажатии кнопки отправки значения, которые отредактированы, обновляются в базе данных, а скрытые поля содержат значения, которые мы заполнили на странице нового окна для этого конкретного идентификатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...