Я совсем новичок в весне MVC. Я пытаюсь выяснить, как передать новое значение в контроллер и обновить существующий объект, используя форму ввода (введите новое значение и отправьте кнопку).
Я уже добавил два следующих объекта в свой база данных: 1) id = 19, имя = mazda, пробег = 789 2) id = 21, имя = audi, пробег = 453.
Мне удалось обновить только значение пробега первого объекта, но только 'stati c way "внутри контроллера (см. код контроллера). Как обновить / отредактировать значение объекта, используя данные, введенные в форму ввода.
Вот мой класс сущности:
@Entity
@Table(name = "carTable")
public class CarEntity {
@Id
@GeneratedValue
private Long id;
private String name;
private double mileage;
//generated getters and setters
Контроллер:
@Controller
@RequestMapping("/carsList")
public class DisplayCarsController {
private ICarService carService;
private CarRepository carRepository;
@Autowired
public DisplayCarsController(ICarService carService, CarRepository carRepository){
this.carService = carService;
this.carRepository = carRepository;
}
@RequestMapping
public String showCars(Model model){
model.addAttribute("myCarsList", carService.findAllCars());
return "carsList";
}
@RequestMapping(value = "edit-car/{id}")
public String editCars(CarEntity carEntity, @PathVariable Long id){
carEntity = carRepository.findOne(id);
carEntity.setMileage(789);
carRepository.save(carEntity);
return "redirect:/carsList";
}
}
JSP Страница:
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>Name</th>
<th>Mileage</th>
<th>Button name</th>
</tr>
</thead>
<tbody>
<c:forEach items="${myCarsList}" var="myCars">
<tr>
<td>
<a> ${myCars.name}
</a>
</td>
<td>
<a> <input type="number" value="${myCars.mileage}">
</a>
</td>
<td>
<a href="<spring:url value="/carsList/edit-car/${myCars.id}"/>"
class="btn btn-danger">
Edit
</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
Что я хочу достичь? Допустим, я бы хотел изменить пробег второго объекта. Я ввожу новое значение в форму ввода на сгенерированной странице, и когда я нажимаю кнопку редактирования, это значение обновляется.