Java <;表单:选择spring mvc将对象显示为字符串

Java <;表单:选择spring mvc将对象显示为字符串,java,spring,spring-mvc,jakarta-ee,Java,Spring,Spring Mvc,Jakarta Ee,大家好,我正在使用SpringMVC,我有一个表单,我必须在步骤中使用一个组合框,一个要加载到组合框中的对象列表驱动程序,但结果是我将其显示为字符串,而不是对象 稍高一点,我有一个组合框,我以同样的方式通过,但与JSTL的形式和位置不符 我需要的是为组合框加载对象的前两个属性 这是代码和图片,他们可以帮助我 控制器 @RequestMapping(value="products.htm", method=RequestMethod.GET) public String homeSuppliers

大家好,我正在使用SpringMVC,我有一个表单,我必须在步骤中使用一个组合框,一个要加载到组合框中的对象列表驱动程序,但结果是我将其显示为字符串,而不是对象

稍高一点,我有一个组合框,我以同样的方式通过,但与JSTL的形式和位置不符

我需要的是为组合框加载对象的前两个属性

这是代码和图片,他们可以帮助我

控制器

@RequestMapping(value="products.htm", method=RequestMethod.GET)
public String homeSuppliers(@RequestParam(required=false) String state, ModelMap model){

    try {

        if (state != null) {
            model.addAttribute("state", state);
        }

        List<ProveedoresDTO> listSupplier = supplierService.getAllSuppliersDTO();

        List<ProductosDTO> listProducts = productService.getAllProductsDTO();

        model.addAttribute("listProducts",listProducts);

        model.addAttribute("listSupplier",listSupplier);

        model.addAttribute("productAtt", new ProductsDTO());

    } catch (Exception e) {
        model.addAttribute("msg",e.getMessage());
    }

    return "productsView/products";
}
@RequestMapping(value=“products.htm”,method=RequestMethod.GET)
公共字符串主供应商(@RequestParam(required=false)字符串状态,ModelMap模型){
试一试{
如果(状态!=null){
model.addAttribute(“状态”,状态);
}
List listSupplier=supplierService.GetAllSuppliersTo();
List listProducts=productService.GetAllProductsTo();
model.addAttribute(“listProducts”,listProducts);
model.addAttribute(“列表供应商”,列表供应商);
addAttribute(“productAtt”,newproductsdto());
}捕获(例外e){
model.addAttribute(“msg”,e.getMessage());
}
返回“产品视图/产品”;
}
JSP


${product.productName}
${msg}
产品
名义产品
:
选择供应商
:
康蒂达德波乌尼达德酒店
:
普瑞西奥尤塔里奥酒店
:
大学股票
:
奥登大学
:
尼维尔奥登酒店
:
描述继续
:

结果


您没有指定选项的用途。试试这个:

<form:select path="supplierID" multiple="false">
      <form:options items="${listSupplier}" itemValue="SupplierID" itemLabel="CompanyName"/>
 </form:select>


请注意,
项目
名称已更改为与
@控制器给出的名称匹配

我认为您缺少嵌套在
标记中的选项。
哦,我刚刚注意到一个输入错误。在窗体上有
${listaSupplieres}
,但在控制器上有
listSupplier
作为属性名-这是故意的吗?这可能是最好的方法。
<form:select path="supplierID" multiple="false">
      <form:options items="${listSupplier}" itemValue="SupplierID" itemLabel="CompanyName"/>
 </form:select>