Мне приходит подобный JSON-массив:
[com.core.newbie.controller.UserController] (информация откуда): [{"age":24,"id":1,"password":"001","userName":"001"},{"age":24,"id":2,"password":"002","userName":"002"},{"age":24,"id":3,"password":"002","userName":"002"},{"age":24,"id":4,"password":"004","userName":"004"},{"age":24,"id":5,"password":"005","userName":"005"},{"age":14,"id":111,"password":"12","userName":"derrick-2"}]
UserController, код из нужной части:
@RequestMapping("/users")
public String users(final Model model) {
final List<User> users = userService.getAll();
model.addAttribute("users", users);
logger.debug("running in UserController.java -> users()");
logger.info(JSON.toJSON(users));
return "/user/users.jsp";
}
Пытаюсь вывести его в users.jsp:
Пользователи:
=<c:forEach begin="0" end="${users.length() -1}" var="user" items="${users}">
<div>
${user.userName}
</div>
<br />
</c:forEach>
Но не выводит.
$(users) при этом выводит:
[com.core.newbie.model.User@5fc33319, com.core.newbie.model.User@6a8d7cfc, com.core.newbie.model.User@708bb2c2, com.core.newbie.model.User@500e9d80, com.core.newbie.model.User@16133763, com.core.newbie.model.User@1778c3c1]
При этом в случае с обычным User (1) все корректно выводится, код из UserController:
@RequestMapping("/showUser")
public String showUser(final HttpServletRequest request, final Model model)
{
final int userId = Integer.parseInt(request.getParameter("id"));
final User user = userService.getUserById(userId);
model.addAttribute("user", user);
logger.debug("running in UserController.java -> showUser()");
logger.info(JSON.toJSON(request.getRequestURI()));
logger.info(JSON.toJSON(user));
return "/user/showUser.jsp";
}
UPD: UserServiceImpl.java, часть с получением List:
@Override
@Select("select * from n_user")
public List<User> getAll() {
return userMapper.findAll();
}
UPD2: После правок код стал таким:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Пользователи</title>
</head>
<body>
Пользователи:
<c:forEach var="user" items="${users}">
<div>
<c:out value="${user.userName}" />
</div>
<br />
</c:forEach>
</body>
</html>
На страницу выводится только слово "Пользователи:". Ни ${user.id}, ни просто ${user} ничего в цикле не выводят.
Во-первых, вам приходит не JSON, а обычный список объектов класса User
. В JSON вы его преобразуете только в момент вывода в лог, а в JSP-страницу он поступает в оригинальном виде. Во-вторых, итерация по элементам списка делается проще:
<c:forEach var="user" items="${users}">
<div>
<c:out value="${user.userName}" />
</div>
<br />
</c:forEach>
В классе User
обязательно должен быть геттер getUserName
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Ребята, я только осваиваю Джаву и программирование в целомПрошу помощи
Обьясните, как программа видет стандартные иконки, pdf,mpr,jpgКак при открытие он сам знал какая программа ему нужна? И как вывести меню на удержание...
Здравствуйте, cтолкнулся с такой проблемой, что надо отсортировать ArrayList по двум параметрам, по имени владельца и по цене комнаты