2014-10-16 64 views
0

我怎样才能Spring MVC中视图页面映射键的值,地图传递给控制器​​适用车型:访问地图

ModelAndView modelAndView = new ModelAndView("addEvent"); 
modelAndView.addObject("saveList", saveList); 
modelAndView.addObject("saveIDMap", saveIDMap); 

return modelAndView; 

其中saveIDMap是Map<String, Integer>

jQuery代码试图访问它在JSP页面:

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $("#saveTypeID").on('change', function() { 
     var val = $("#saveTypeID").val();  ----getting here successfully 
     var saveId = "${saveIDMap['" + val + "']}"; ---trying to get hashmap value 
     $("#saveIDID").val(saveID); 
    }); 
    }); 
</script> 

,其中ID是下面的表单代码:

 <tr> 
     <td>SaveType :</td> 
     <td><form:select path="saveType" items="${saveList}" id ="saveTypeID"/></td> 
    </tr> 

    <tr> 
    <td>SaveId :</td> 
     <td><form:input path="saveId" id="saveIDID"/></td> 
    </tr> 

访问saveIDMap没有运行后的部分jQuery的代码,我在哪里看到错误消息的jQuery在Tomcat容器?

请帮忙!新来jquery。

感谢

回答

0
<c:forEach var="item" items="${saveIDMap[KEY]}" varStatus="status"> 
    <input type="text" id="saveID_${status.index}" value="${item.value}" /> 
</c:forEach> 

项目会在你的地图中的每个对象。您需要根据您的对象更改输入值。

+0

谢谢,但是当我访问javascript中的item变量并使用+连接动态追加到saveID_时,它不起作用。我可以直接在jQuery中使用var saveId =“$ {saveIDMap ['keyy']}”;其中key是实际的键,但当keyy动态填充时,如 - var saveId =“$(saveIDMap ['”+ val +“'])”); val是jQuery变量,它不起作用。同样的方法,我试图访问像var saveId =“$(items ['saveID_”+ val +“'])”);看起来像jquery串联字符串的方式可能有问题。任何想法如何实现? – tzharg 2014-10-16 18:03:21

+0

@tigger如果我正确理解你的情况,你的问题是你发送的地图在页面加载过程中呈现。页面加载后,您将无法访问它。因此,无论您是否可以将地图值保存在页面加载中(如我的示例中所示),并根据用户选择使用,或者您可以使用ajax获取每次调用的数据。 – likeachamp 2014-10-16 20:18:36

+0

我能够使用var saveId =“$ {saveIDMap ['keyy']}”直接在jquery中访问hashmap;钥匙是实际的钥匙。 – tzharg 2014-10-17 17:16:18