0

単純なSpring3MVCアプリには、オプションが表示されないドロップダウンがいくつかあります。

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クラスには次のものがあります。

@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'のオプションはレンダリングを行い、表示される唯一のオプションです。私は何か基本的なものが欠けていますか?

4

1 に答える 1

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.ドロップダウンのアイテムを持っていません

于 2012-10-08T16:23:18.850 に答える