activeUsers.getUsers() возвращает список онлайн-пользователей моего приложения.
Я хочу отобразить это в своем HTML, но понятия не имею, как это сделать. Я получаю ошибку 404 в своем запросе ajax, но если я поставлю точку останова в своем контроллере, он покажет список онлайн-пользователей.
Любая помощь??
Контроллер
@RequestMapping(value = "/loggedUsers", method = RequestMethod.GET)
public String getLoggedUsers(Model model) {
model.addAttribute("loggedUsers", activeUsers.getUsers());
return "loggedUsers";
}
AJAX
$(document).ready(function () {
//get loggedUsers
$.ajax({
url: '/loggedUsers',
type: 'get',
success: function (loggedUsers) {
console.info(loggedUsers);
}
});
});
HTML
<div id = "sidebar-right" class = "visible">
<ul class = "sidebar-nav">
<li id = "dashboard">
<a href = "dashboard">
<c:forEach var = "loggedUser" items = "${loggedUsers}">
<span class = "menu-title">${loggedUser}</span>
</c:forEach>
</a>
</li>
</ul>
журнал консоли возвращает:
error 404
Вы возвращаете не список пользователей, а представление. loggedUsers.jsp (или любую другую технологию просмотра, которую вы используете, найти невозможно). Вместо этого просто верните список пользователей и аннотируйте метод с помощью @responseBody, таким образом вы получите список пользователей в виде JSON, а затем используете некоторый JS для отображения списка.
ты прав. Спасибо



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Измените свой контроллер и добавьте аннотацию @ResponseBody над ним. Ваш код должен выглядеть так
@RequestMapping(value = "/loggedUsers", method = RequestMethod.GET)
@ResponseBody
public String getLoggedUsers(Model model) {
model.addAttribute("loggedUsers", activeUsers.getUsers());
return "loggedUsers";
}
Это вернет только контент и, например, не будет искать jsp. (причина, по которой вы получили 404)
но мне все еще нужно динамически добавлять его с помощью jquery? Есть ли способ поместить loggedUsers уже в html?
вы создаете API для отдыха? как называется ваш html файл?
Не знаю, ОТДЫХ это или нет. Это веб-сайт с Spring MVC5. Страница называется sidebar-right.jsp, и я включаю ее на каждую страницу, используя <%@include file = "sidebar-right.jsp"%>.
Что ж, я бы серьезно посоветовал вам взглянуть на этот spring.io/guides/gs/serving-web-content
Это даст вам полное представление о том, как следовать рекомендациям Spring для создания приложений на основе Spring.
Добавьте тело @Response. Вам нужно сделать это REST API, потому что это вызов AJAX.
@RequestMapping(value = "/loggedUsers", method = RequestMethod.GET)
public @ResponseBody String getLoggedUsers(Model model) {
model.addAttribute("loggedUsers", activeUsers.getUsers());
return "loggedUsers";
}
ajax возвращает 404, но вызывает функцию