如何使用Spring MVC将Java Map放入Optgroup选项?

dat*_*Woo 2 javascript java spring-mvc option optgroup

我正在使用Spring MVC.

我目前有一个Map通过request.setAttribute('userLocales',bluh bluh bluh)从一个名为"userLocales"的变量从Java传递到我的页面

我需要以某种方式获取该变量中的字符串,以在optgroup选择元素中构建选项元素列表.我最初的想法是以某种方式将此Map转换为Javascript对象,然后将字符串添加到新创建的选项元素中以放置在optgroup元素中.

optgroup元素是静态的并且已经创建.我只需要带有字符串的选项.

dat*_*Woo 5

我想我在发布这个问题后就找到了答案.精彩

资料来源:http://www.imrantariq.com/blog/option-group-capability-for-spring-mvc-form-taglib/

设置时的"optgroup"属性将首先按"optgroup"中定义的"表达式"进行排序,然后跟踪迭代的进度并插入"optgroup"html开始标记,并在选择的适当位置结束标记列表使用"optgroup"中的表达式作为标签.

不幸的是,目前spring mvc并没有通过其标签提供这样的功能.这可以通过下面给出的一个很好的逻辑来实现.您需要从控制器发送hashMap.

Map<String, ArrayList<String>>
Run Code Online (Sandbox Code Playgroud)

在此映射中,字符串是键,即组名称和arraylist是此组中的值的数量.Jsp代码可以用这种方式编写.

<form:select multiple="single" path="itemType" id="itemType">
    <form:option value="0" label="Select" />
    <c:forEach var="itemGroup" items="${itemTypeList}" varStatus="itemGroupIndex">
       <optgroup label="${itemGroup.key}">
           <form:options items="${itemGroup.value}"/>        
       </optgroup>
    </c:forEach>        
</form:select>
Run Code Online (Sandbox Code Playgroud)