gpt4 book ai didi

java - 将对象从下拉列表 (.jsp) 传递到 Controller

转载 作者:行者123 更新时间:2023-12-02 02:53:17 26 4
gpt4 key购买 nike

我正在尝试将一个对象(或只是 ID)传递到我的 Controller ,我从下拉列表中选择了该 Controller 。有 2 个类:productcategory(product 包含一个外键,即 category 的 ID)这就是我将其加载到:

@RequestMapping(value="/edit", method=RequestMethod.GET)
public ModelAndView edit(@RequestParam(required=false) Long id) {
ModelAndView mv = new ModelAndView();
if (id == null) {
mv.addObject(new Product());
} else {
mv.addObject("product", productDao.findById(id));
}
mv.addObject("category", categoryDao.findAll());
mv.setViewName("edit-product");
return mv;
}

如您所见,我将对象类别传递到我的.jsp中。我在那里显示用户可以选择的所有类别。

<select name="category">
<c:forEach items="${category}" var="category">
<option name="category" value="${category.id}">${category.name}</option>
</c:forEach>
</select>

该值应该传递给我的 Controller ,但我不知道如何传递它。

@RequestMapping(value="/save", method=RequestMethod.POST)
public String save(Product product, Category category, Model model) {
product.setCategory(category); //not working, since the parameter isn't correct
Product result = productDao.save(product);
// set id from create
if (product.getId() == null) {
product.setId(result.getId());
}

最佳答案

将 ID 添加到您的选择中 - 该 ID 将作为请求参数添加。

<select name="category" id="categoryId">

以及获取值的 Controller

public String save(@RequestParam("categoryId") Long categoryId, Model model)

如果您的Product产品有categoryId字段(带有setter),您可以只使用Product产品而不是长categoryId

关于java - 将对象从下拉列表 (.jsp) 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43471578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com