java.lang.IllegalArgumentException:属性'items'必须是数组,Collection或Map

时间:2015-10-04 11:13:15

标签: spring jsp spring-mvc jdbctemplate

我正在尝试使用jdbctemplate创建简单的spring mvc应用程序,但是当我尝试打开注册页面时,我得到了这个错误 - java.lang.IllegalArgumentException:属性'items'必须是数组,Collection或Map。

上次我在另一个应用程序中使用了这个东西,它工作正常,但这次它不起作用:(

这是我的控制器代码和register.jsp

@RequestMapping("/register")
public ModelAndView registerEmployee(@ModelAttribute Employee employee) {

    List<String> cityList = new ArrayList<String>();
    cityList.add("kashipur");
    cityList.add("moradabad");
    cityList.add("delhi");
    cityList.add("noida");

    List<String> genderList = new ArrayList<String>();
    genderList.add("male");
    genderList.add("female");

    Map<String,List<String>> map = new HashMap<String,List<String>>();
    map.put("cityList",cityList);
    map.put("genderList",genderList);

    return new ModelAndView("register","map",map);

}

register.jsp是

<div>
    <form:form method="post" action="/insert" modelAttribute="employee">
        <table>
            <tr>
                <td>Name :</td>
                <td><form:input path="name" /></td>
            </tr>
            <tr>
                <td>Gender :</td>
                <td><form:radiobuttons path="gender" items="${map.genderList}" /></td>
            </tr>
            <tr>
                <td>City :</td>
                <td><form:select path="city" items="${map.cityList}" /></td>
            <tr>
            <tr>
                <td>Email :</td>
                <td><form:input path="email" /></td>
            </tr>
            <tr>
                <td>Phone :</td>
                <td><form:input path="phone" /></td>
            </tr>

            <tr>
                <td><input type="submit" value="Save" /></td>
            </tr>

            <tr>
                <td colspan="2"><a href="getList">Click Here to See User
                        List</a></td>
            </tr>
        </table>
    </form:form>
</div>

2 个答案:

答案 0 :(得分:1)

尝试更改此List<String> cityList 这个ArrayList<String> cityList

同样在这里

Map<String,List<String>> map = new HashMap<String,List<String>>();

还尝试访问此map['cityList']

之类的地图元素

答案 1 :(得分:0)

您不需要符合${map.

的资格

简单写一下

return new ModelAndView("register", map);

并在JSP中:

<td><form:radiobuttons path="gender" items="${genderList}" /></td>

<td><form:select path="city" items="${cityList}" /></td>