Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 弹簧形式选择标记不';不要突出显示多个项目_Spring_Jsp_Spring Mvc_Drop Down Menu_Spring Form - Fatal编程技术网

Spring 弹簧形式选择标记不';不要突出显示多个项目

Spring 弹簧形式选择标记不';不要突出显示多个项目,spring,jsp,spring-mvc,drop-down-menu,spring-form,Spring,Jsp,Spring Mvc,Drop Down Menu,Spring Form,我在jsp页面上设置了一个Spring“select”表单标记,用于输入搜索参数和显示结果。由于“multiple=true”选项,Spring form select tage允许用户选择多个项目。我在显示结果以突出显示已选择多个项目时遇到问题 如果用户选择一个项目,它将在表单的重新显示中突出显示(输入的搜索参数仍显示在页面的上半部分,搜索结果显示在下半部分),则效果良好 选定的单个项目: 单个项目仍在响应显示上显示为选中: 但是,如果选择了多个项目,则在结果显示上根本不会突出显示多个选择

我在jsp页面上设置了一个Spring“select”表单标记,用于输入搜索参数和显示结果。由于“multiple=true”选项,Spring form select tage允许用户选择多个项目。我在显示结果以突出显示已选择多个项目时遇到问题

如果用户选择一个项目,它将在表单的重新显示中突出显示(输入的搜索参数仍显示在页面的上半部分,搜索结果显示在下半部分),则效果良好

选定的单个项目:

单个项目仍在响应显示上显示为选中:

但是,如果选择了多个项目,则在结果显示上根本不会突出显示多个选择:

已选择多个项目:

结果显示中未显示多个项目:

以下是相关的jsp代码:

操作命令:

<form:form action="/${localePath}/search/ssSearch.do" method="post"  modelAttribute="searchCommand" onsubmit="return trackSearch();">
以下是控制器请求代码:

@RequestMapping(value = "/*/search/ssSearch.do", method=RequestMethod.POST) 
public String searchResults( HttpServletRequest request, 

@ModelAttribute("searchCommand") SearchCommand command,  ModelMap map)
            throws Exception 
    {
        return searchResultsDo(command,  map, request);
    }
以下是用于填充测试项的代码:

    Map<String, String> testItemsMap = new TreeMap<String, String>();
    testItemsMap.put("item1 name", "item 1 value");
    testItemsMap.put("item2 name", "item 2 value");
    testItemsMap.put("item3 name", "item 3 value");
    testItemsMap.put("item4 name", "item 4 value");
    testItemsMap.put("item5 name", "item 5 value");
    testItemsMap.put("item6 name", "item 6 value");
    testItemsMap.put("item7 name", "item 7 value");
    testItemsMap.put("item8 name", "item 8 value");

    map.addAttribute("testItems", testItemsMap);
Map testItemsMap=newtreemap();
testItemsMap.put(“项目1名称”、“项目1值”);
testItemsMap.put(“项目2名称”、“项目2值”);
testItemsMap.put(“项目3名称”、“项目3值”);
testItemsMap.put(“项目4名称”、“项目4值”);
testItemsMap.put(“项目5名称”、“项目5值”);
testItemsMap.put(“第6项名称”、“第6项值”);
testItemsMap.put(“第7项名称”、“第7项值”);
testItemsMap.put(“项目8名称”、“项目8值”);
addAttribute(“testItems”,testItemsMap);

如何在响应页面上突出显示多个选定项目

答案是收集代码中选定项的映射,然后在jsp中引用它,如下所示:

                <form:select path="testItems2" multiple="true" size="4">
                     <form:option value="">All Items</form:option>              
                      <c:forEach items="${testItems2}" var="testItem2">
                       <c:choose>
                        <c:when test="${not empty items2SelectedMap[testItem2.key]}">
                          <form:option value="${testItem2.key}" selected="true">${testItem2.value}</form:option>
                          </c:when>
                          <c:otherwise>
                          <form:option value="${testItem2.key}" >${testItem2.value}</form:option>
                        </c:otherwise>                            
                       </c:choose>
                    </c:forEach>                            
                </form:select> 

所有项目
${testItem2.value}
${testItem2.value}
Java代码:

        Map<String, String> testItemsMap2 = new TreeMap<String, String>();

        List<String> items2SelectedList = null;
        if(StringUtils.isNotBlank(command.getTestItems2())){
            String[] items2Selected = command.getTestItems2().split(",");
            items2SelectedList = Arrays.asList(items2Selected);
        }


        Map<String, String> items2SelectedMap = new HashMap<String, String>();
        if (items2SelectedList != null) {
            for (String item2 : items2SelectedList) {
                items2SelectedMap.put(item2, item2);
            }
        }
        map.addAttribute("items2SelectedMap", items2SelectedMap);
Map testItemsMap2=new TreeMap();
列表项2 SelectedList=null;
if(StringUtils.isNotBlank(command.getTestItems2())){
字符串[]items2Selected=command.getTestItems2().split(“,”);
items2SelectedList=Arrays.asList(items2Selected);
}
Map items2SelectedMap=newhashmap();
if(items2SelectedList!=null){
对于(字符串项2:items2SelectedList){
Items2 SelectedMap.put(item2,item2);
}
}
addAttribute(“items2SelectedMap”,items2SelectedMap);

答案是收集代码中选定项目的地图,然后在jsp中引用它,如下所示:

                <form:select path="testItems2" multiple="true" size="4">
                     <form:option value="">All Items</form:option>              
                      <c:forEach items="${testItems2}" var="testItem2">
                       <c:choose>
                        <c:when test="${not empty items2SelectedMap[testItem2.key]}">
                          <form:option value="${testItem2.key}" selected="true">${testItem2.value}</form:option>
                          </c:when>
                          <c:otherwise>
                          <form:option value="${testItem2.key}" >${testItem2.value}</form:option>
                        </c:otherwise>                            
                       </c:choose>
                    </c:forEach>                            
                </form:select> 

所有项目
${testItem2.value}
${testItem2.value}
Java代码:

        Map<String, String> testItemsMap2 = new TreeMap<String, String>();

        List<String> items2SelectedList = null;
        if(StringUtils.isNotBlank(command.getTestItems2())){
            String[] items2Selected = command.getTestItems2().split(",");
            items2SelectedList = Arrays.asList(items2Selected);
        }


        Map<String, String> items2SelectedMap = new HashMap<String, String>();
        if (items2SelectedList != null) {
            for (String item2 : items2SelectedList) {
                items2SelectedMap.put(item2, item2);
            }
        }
        map.addAttribute("items2SelectedMap", items2SelectedMap);
Map testItemsMap2=new TreeMap();
列表项2 SelectedList=null;
if(StringUtils.isNotBlank(command.getTestItems2())){
字符串[]items2Selected=command.getTestItems2().split(“,”);
items2SelectedList=Arrays.asList(items2Selected);
}
Map items2SelectedMap=newhashmap();
if(items2SelectedList!=null){
对于(字符串项2:items2SelectedList){
Items2 SelectedMap.put(item2,item2);
}
}
addAttribute(“items2SelectedMap”,items2SelectedMap);