2012-10-08 58 views
0

在一个简单的Spring 3 MVC应用程序中,我有几个下拉菜单没有显示任何选项。春天下拉不渲染选项

JSP表单片段是:

<form:form method="POST" commandName="carSelection"> 
     <form:errors path="*" cssClass="errorblock" element="div" /> 
     <table> 
      <tr> 
       <td>Car Make :</td> 
       <td><form:select path="makes" multiple="false"> 
         <form:options items="${makes}"/> 
        </form:select> 
           </td> 
       <td><form:errors path="makes" cssClass="error" /></td> 
      </tr> 

      <tr> 
       <td>Car Make (SimpleList):</td> 
       <td><form:select path="simpleModels" multiple="false"> 
         <form:options items="${simpleModels}"/> 
        </form:select> 
           </td> 
       <td><form:errors path="makes" cssClass="error" /></td> 
      </tr> 
      <tr> 
       <td>Car Model :</td> 
       <td> 
        <form:select path="models" items="${models}" multiple="false"> 
         <form:option value="NONE" label="--- Select ---" /> 
         <form:options items="${models}" itemValue="modelId" itemLabel="modelName"/> 
        </form:select> 
       </td> 
       <td><form:errors path="models" cssClass="error" /></td> 
      </tr> 

     </table> 
    </form:form> 

和控制器类,我有以下:

@Controller 
@RequestMapping("/car") 
public class CarController { 

    /** 
    * Initialise the car selection form 
    * @param model 
    * @return 
    * @throws Exception 
    */ 
    @RequestMapping(value = "/carSelectionForm") 
    public ModelAndView loginForm() throws Exception { 
     ModelAndView mav = new ModelAndView(); 
     CarSelection cs = new CarSelection(); 
     List<CarMake> makes = new ArrayList<CarMake>(5); 
     makes.add(new CarMake(1, "Ford")); 
     makes.add(new CarMake(2, "Fiat")); 
     makes.add(new CarMake(3, "Renualt")); 
     makes.add(new CarMake(4, "Kia")); 
     makes.add(new CarMake(5, "Ferrari")); 
     cs.setMakes(makes); 

     List<String> simpleList = new ArrayList<String>(5); 
     simpleList.add("Ford"); 
     simpleList.add("Fiat"); 
     simpleList.add("Renualt"); 
     simpleList.add("Kia"); 
     simpleList.add("Ferrari"); 
     cs.setSimpleModels(simpleList); 

     mav.setViewName("carSelectionForm"); 
     mav.addObject("carSelection", cs); 
     return mav; 
    } 
} 

为“NONE”不渲染的选项,是显示了唯一的选择。我缺少一些基本的东西吗?

回答

1

您需要在options属性items中设置正确的列表。

<form:select path="makes" multiple="false"> 
    <form:options items="${carSelection.makes}"/> 
</form:select> 


<form:select path="simpleModels" multiple="false"> 
    <form:options items="${carSelection.simpleModels}"/> 
</form:select> 

但我没有对3降下来的项目在控制器

+0

..penny滴..辉煌的感谢 – enkor