Как jQuery принимает коллекцию из Java?

Подскажите, как в jQuery выглядит код, принимающий коллекцию типа String отправленную с сервера(сервлета)?
  • Вопрос задан
  • 369 просмотров
Пригласить эксперта
Ответы на вопрос 1
EugeneP2
@EugeneP2
Java Dev
Если вы хотите что то передать в JavaScript, лучше предварительно перевести это в json, в вашем случае это коллекция.

Передать данные в JavaScript/ JQuery можно двумя способами:
  • Непосредственно в код javascript;
  • Сделать ajax запрос на сервер.
Передать данные при загрузки странице

Сервлет
@WebServlet(urlPatterns = "/home") // javax.servlet-api 3.0
public class HomeServlet extends HttpServlet {

	private final Gson gson = new Gson();

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		List<String> users = Arrays.asList("Vaya", "Petya", "Fedya");

		String json = gson.toJson(users);
		req.setAttribute("usersJson", json);

		req.getRequestDispatcher("/home.jsp").forward(req,resp);
	}
}


Страница
<html>
<head>
    <script src="js/jquery-1.9.1.js"></script>
</head>
<body>
<script>
    var users = ${usersJson};

    $.each(users, function(i, val) {
.....................
    });
</script>
</body>
</html>


Получение данных с помощью AJAX запроса

Сервлет
@WebServlet(urlPatterns = "/json")
public class JsonServlet extends HttpServlet {

	private final Gson gson = new Gson();


	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		List<String> users = Arrays.asList("Vaya", "Petya", "Fedya");

		resp.addHeader("Content-Type", "application/json");

		String json = gson.toJson(users);

		resp.getWriter().print(json);

		resp.flushBuffer();
	}
}


Страница
<html>
<head>
    <script src="js/jquery-1.9.1.js"></script>
</head>
<body>
<script>
    $.get('json', function(data) {
        $.each(data, function(i, val) {
            ..............................
        });
    });

</script>
</body>
</html>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы