Я хочу отправить и получить HashMap через angularjs и получить его в контроллере springmvc. Я успешно отправил и получил List, но не смог отправить HashMap. Мой код есть.
$scope.addskill = function(skills){
// $scope.list = [];
// $scope.list.push(skills.skillName, skills.expMonth, skills.expYear, skills.experties);
var map = {};
map['name'] = skills.skillName;
map['month'] = skills.expMonth;
map['year'] = skills.expYear;
map['experties'] = skills.experties;
alert(map['name']);
var response = $http.get('/JobSearch/user/addskill/?map=' +map);
// var response = $http.get('/JobSearch/user/addskill/?list=' +$scope.list);
response.success(function(data, status, headers, config){
$scope.skills = null;
$timeout($scope.refreshskill,1000);
});
response.error(function(data, status, headers, config) {
alert("Exception details: " + JSON.stringify({data: data}));
});
};
Мой MVC контроллер:
@RequestMapping(value = "/addskill", method = RequestMethod.GET)
@ResponseStatus(value = HttpStatus.NO_CONTENT)
public void addStudentSkill(@RequestBody HashMap<String,String> map){
System.out.println(map.get("name"));
/*
* public void addStudentSkill(@RequestParam("list") List list){
try{
StudentSkills skills = new StudentSkills();
skills.setSkillName(list[0]);
skills.setExpMonth(Integer.parseInt(list[1]));
skills.setExpYear(Integer.parseInt(list[2]));
skills.setExperties(list[3]);
skills.setStudent(studentService.getStudent(getStudentName()));
studentService.addStudentSkill(skills);
}catch(Exception e){};
*/
}
комментируемые код работает, когда я отправлять и получать список. Я хочу использовать ключ для извлечения данных. Если есть лучший способ, пожалуйста, предложите.
ошибка не может преобразовать java.lang.String в HashMap
необходимо CSRF маркер при отправке запроса пост. также @requestParam HashMap map не работает, но список String [] работает в запросе get. –
Kharoud
Если токен CSRF необходимо отправить, отправьте его ... Не используйте GET, когда должен использоваться POST. –
Мои данные могут быть переданы через запрос получения, хотя и немного громоздки, но я думаю, что я не должен использовать токен безопасности CSRF, если это не совсем необходимо. Спасибо, что ответ был полезен. – Kharoud