2014-10-16 2 views
0

Как я могу получить значение ключа карты в Spring MVC вид страницы с картой передается модели, как ниже в контроллере:доступ Карта через JQuery внутри пружинной модели

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> 

где идентификаторы в виде фрагмента кода ниже:

 <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> 

код JQuery после того, как части, чтобы получить доступ к saveIDMap не работает, и где я вижу сообщения об ошибках для 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

Спасибо, но когда я обращаюсь к переменной item в javascript и динамически добавляю к saveID_, используя + конкатенацию, это не работает. Я могу получить доступ к hashmap непосредственно в jquery, используя var saveId = "$ {saveIDMap ['keyy']}"; где ключ является фактическим ключом, но когда keyy динамически заполняется как - var saveId = "$ (saveIDMap ['" + val + "'])"); где val - переменная jquery, она не работает. Точно так же я пытался обращаться к элементам типа var saveId = "$ (items ['saveID_" + val + "'])"); Похоже, может возникнуть проблема с тем, как jquery объединяет строку. Любая идея, как этого достичь? – tzharg

+0

@tigger Если я правильно понимаю ваш случай, ваша проблема - это карта, которую вы отправили, отображается во время загрузки страницы. После загрузки страницы вы не сможете получить к ней доступ. Таким образом, вы можете сохранить значения карты на загрузке страницы, как в моем примере, и использовать на основе выбора пользователя, или вы можете получить данные для каждого вызова с помощью ajax. – likeachamp

+0

Я могу получить доступ к hashmap непосредственно в jquery, используя var saveId = "$ {saveIDMap ['keyy']}"; где ключ является фактическим ключом. – tzharg

Смежные вопросы