Spring Boot и Jquery получают доступ к значениям из хэш-карты в интерфейсе - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть контроллер rest при весенней загрузке, который возвращает хеш-карту, где ключ - целое число, а значение - строка. Моя проблема в том, что мне нужно показать эти значения внутри страницы, используя jquery, но я не знаю,как получить доступ к этим значениям из этой карты :( Вот контроллер:

@RequestMapping(value = "/send", method = RequestMethod.GET)
    @ResponseBody
    public Map sendMoney(@RequestParam String email, @RequestParam int money) {
        User user = userRepository.findByEmail(email);
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        User loggedInUser = userRepository.findByEmail(auth.getName());
        Map<Integer,String> returnedValues = new HashMap<>();
        returnedValues.put(loggedInUser.getTotalMoney(), "Something went wrong");
        String message = "";
        if (money < 1) {
            returnedValues.put(loggedInUser.getTotalMoney(), "You can't send 0 money");
            return returnedValues;
        }
        if (user == null) {
            returnedValues.put(loggedInUser.getTotalMoney(), "This user doesn't exist");
            return returnedValues;
        }
        if (user != null && money >= 1) {
            if (!email.equals(auth.getName()) && money >= 1) {
                if (money > loggedInUser.getTotalMoney()) {
                    returnedValues.put(loggedInUser.getTotalMoney(), "You can't send that much money");
                    return returnedValues;
                } else {
                    loggedInUser.setTotalMoney(loggedInUser.getTotalMoney()-money);
                    user.setTotalMoney(user.getTotalMoney() + money);
                    userRepository.save(user);
                    userRepository.save(loggedInUser);
                    returnedValues.put(loggedInUser.getTotalMoney(), "Money sent successfully");
                    return returnedValues;
                }
            }
        }
        return returnedValues;
    }

JQuery:

function ajaxPost(){
         $.ajax({
              type: "GET",
              url: "/send",
              contentType: 'application/json',
              data: { 
                  'email': $('#email').val(),
                  'money': $('#money').val(),
              },
              success: function(data) {
                  console.log("SUCCES");
                  console.log(data);
                  $('.currentBalance').text(data[0]);
                $('#response').append('<h3>' + data[1] + '</h3>');
              },
              error : function(e) {
                    alert("Error!")
                    console.log("ERROR: ", e);
                }
            });
     }

Итак, console.log (data) -> показывает карту хеша вКонсоль, как это:

{2165: "Money sent successfully", 2167: "Something went wrong"}

Как я могу получить доступ к ключу и значению этого объекта? Я пробовал с данными [0] и другими подобными комбинациями, и это действительно не сработало: (

Моя html-страница имеет тег h3:

<h3 class="currentBalance" th:text="'Your current balance is: ' + ${money}"></h3>

Итак, используя jquery, я должен изменить текст из currentBalance на текст, полученный из hashMap. Я попытался сделать это:

$('.currentBalance').text(data[0]);

Но данные [0] не работают: (

Ответы [ 2 ]

0 голосов
/ 30 декабря 2018

Вот пример кода:

data = {2165: "Money sent successfully", 2167: "Something went wrong"};
var idx = 0; 
var key = Object.keys(data)[idx];
var value = data[key]
console.log(value);
$('.currentBalance').text(value);
0 голосов
/ 30 декабря 2018

Вот фрагмент:

for (var key in data) {
    if (data.hasOwnProperty(key)) {
        console.log(key + " -> " + data[key]);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...