Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
0 / 0 / 1
Регистрация: 06.08.2014
Сообщений: 57

Как отобразить запрос на jsp, который возвращает одну строку?

31.08.2014, 01:14. Показов 3126. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Как отобразить запрос, на выборку информации о пользователе, который зашел в систему (профиль пользователя)? Пытаюсь сделать так:
UserDaoImpl:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Repository
public class UserDaoImpl implements UserDao {
    @Autowired
    private SessionFactory sessionFactory;
...
 @SuppressWarnings("unchecked")
    public User getLogin(String login){
        Query q = sessionFactory.getCurrentSession().createQuery(
                "FROM User where login=:login"); 
        q.setString("login", login);
         return (User) q.uniqueResult();
     }
...
}

UserServiceImpl:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
@Service
public class UserServiceImpl implements UserService{
 @Autowired
    private UserDao userDao;
...
   @Transactional
    public User getLogin(String login){
        return userDao.getLogin(login);
    }
...
}

UserController:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
@Controller
public class UserController {
   @Autowired
    private UserService userService;
...
    @RequestMapping("/user/find")
    public String findUsers(@ModelAttribute("findUser") String userLogin, BindingResult result, Map<String, Object> map) {
        map.put("userProfile", userService.getLogin(userLogin));
        map.put("user", new User());
        return "profile";
    }
}

profile.jsp:
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="calendar" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<t:template>
    <body>
        <form:form method="post" action="/user/find" commandName="findUser">
        <table class="user-table">
            <tr>
                <th colspan="9"><span class="users-label">
            <spring:message code="label.users"/></span></th>
            </tr>
            <tr>
                <th><spring:message code="label.name"/></th>
                <th><spring:message code="label.surname"/></th>
                <th><spring:message code="label.birthdate"/></th>
                <th><spring:message code="label.address"/></th>
                <th><spring:message code="label.tel"/></th>
                <th><spring:message code="label.email"/></th>
                <th><spring:message code="label.login"/></th>
                <th><spring:message code="label.category"/></th>
                <th>&nbsp;</th>
            </tr>
 
            <c value="${userProfile}" var="user">
                <tr>
                    <td>${user.name}</td>
                    <td>${user.surname}</td>
                    <td><calendar:formatDate
                    value="${user.birthdate}" pattern="dd-MM-yyyy"/></td>
                    <td>${user.address}</td>
                    <td>${user.tel}</td>
                    <td>${user.email}</td>
                    <td>${user.login}</td>
                    <td>${user.category.name}</td>
                    <td><a href="${pageContext.request.contextPath}/user/edit/${user.id}">
                    <spring:message code="label.edit"/></a></td>
                </tr>
            </c>
        </table>
    
        </form:form>
    </body>
</t:template>
</html>

выходит пустая таблица. Как правильно написать строку 28 в profile.jsp?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.08.2014, 01:14
Ответы с готовыми решениями:

Запрос всегда возвращает одну строку
string path = &quot;Data Source=(local)\\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True&quot;; SqlConnection cn = new...

POST - запрос возвращает одну и ту же строку ответа, в независимости от параметров
Ключ поиска берется из буфера обмена. Есть сайт с возможностью поиска. Почему-то программно поиск не осуществляется (все время...

Как использовать запрос, который возвращает больше одного значения
Всем привет, столкнулся с такой проблемой: имеем БД, в которой есть несколько таблиц, er-модель прикрепляю. В таблице GPU у меня есть...

25
 Аватар для animator404
99 / 99 / 12
Регистрация: 05.05.2013
Сообщений: 1,208
01.09.2014, 00:41
Visiterr, попробуйте в контролеере в методе findUsers сделать через ModelAndView.
0
0 / 0 / 1
Регистрация: 06.08.2014
Сообщений: 57
01.09.2014, 03:21  [ТС]
animator404, как это правильно написать?
Пытаюсь так:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
 @RequestMapping("/user/find")
    public ModelAndView findUsers(@ModelAttribute("findUser") String userLogin, BindingResult result, Map<String, Object> map) {
        ModelAndView model = new ModelAndView();
        userService.getLogin(userLogin);
        model.setViewName("profile");
        return model;
    }

все равно пустая таблица выходит.
Но запрос выполняется:
Кликните здесь для просмотра всего текста
Hibernate: select user0_.id as id0_, user0_.address as address0_, user0_.birthdate as birthdate0_, user0_.category_id as category14_0_, user0_.comment as comment0_, user0_.confirmPassword as confirmP5_0_, user0_.email as email0_, user0_.enabled as enabled0_, user0_.gender as gender0_, user0_.login as login0_, user0_.name as name0_, user0_.password as password0_, user0_.surname as surname0_, user0_.tel as tel0_ from user user0_ where user0_.login=?
0
 Аватар для animator404
99 / 99 / 12
Регистрация: 05.05.2013
Сообщений: 1,208
01.09.2014, 14:36
Visiterr, а где перед возвращением return model; - страници вы ложите значение в модель?
Вы сделали запрос в сервис userService.getLogin(userLogin);, ну а дальше? Куда вы ложите возвращаемое значение?
0
0 / 0 / 1
Регистрация: 06.08.2014
Сообщений: 57
02.09.2014, 04:16  [ТС]
Делаю так:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
 @RequestMapping(value="/user/find", method = RequestMethod.GET)
    public ModelAndView findUsers(@ModelAttribute("findUser") String userLogin) {
 
        ModelAndView model = new ModelAndView();
        model.addObject("user", (userService.getLogin(userLogin)));
        model.setViewName("profile");
        return model;
    }

и в profile.jsp так:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 <form:form method="post" action="/user/find" commandName="findUser">
        <table class="user-table">
            <tr>
                <th colspan="9"><span class="users-label">
            <spring:message code="label.users"/></span></th>
            </tr>
            <tr>
                <th><spring:message code="label.name"/></th>
                <th><spring:message code="label.surname"/></th>
                <th><spring:message code="label.birthdate"/></th>
                <th><spring:message code="label.address"/></th>
                <th><spring:message code="label.tel"/></th>
                <th><spring:message code="label.email"/></th>
                <th><spring:message code="label.login"/></th>
                <th><spring:message code="label.category"/></th>
                </tr>
 
                <c var="user">
                <tr>
                    <td>${user.name}</td>
                    <td>${user.surname}</td>
                    <td><calendar:formatDate
                    value="${user.birthdate}" pattern="dd-MM-yyyy"/></td>
                    <td>${user.address}</td>
                    <td>${user.tel}</td>
                    <td>${user.email}</td>
                    <td>${user.login}</td>
                    <td>${user.category.name}</td>
 
                    <td><a href="${pageContext.request.contextPath}/user/edit/${user.id}">
                    <spring:message code="label.edit"/></a></td>
 
                </tr>
            </c>
        </table>
    
        </form:form>

выходит все та же пустая таблица. Правильно ли я добавляю значение в модель?
0
59 / 59 / 20
Регистрация: 21.03.2013
Сообщений: 186
02.09.2014, 09:37
Правильно ли я добавляю значение в модель?
Правильно.

Попробуйте удалить тег <c var="user"> </c>
Насколько я понимаю, должно работать без этого. Сразу же в jsp начинайте использовать переменную ${user} без всяких <c var=.....>
1
0 / 0 / 1
Регистрация: 06.08.2014
Сообщений: 57
02.09.2014, 14:44  [ТС]
Делаю без <c var="user"> </c> все равно выходит пустая таблица
0
 Аватар для Артём121
66 / 65 / 13
Регистрация: 15.11.2010
Сообщений: 396
Записей в блоге: 1
02.09.2014, 20:17
Java
1
map.put("user", new User());
Зачем эта строчка кода ?
0
0 / 0 / 1
Регистрация: 06.08.2014
Сообщений: 57
02.09.2014, 22:01  [ТС]
Артём121, сейчас у меня вместо того кода этот:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
@RequestMapping(value="/user/find", method = RequestMethod.GET)
    public ModelAndView findUsers(@ModelAttribute("findUser") String userLogin) {
 
        ModelAndView model = new ModelAndView();
        model.addObject("user", (userService.getLogin(userLogin)));
        model.setViewName("profile");
        return model;
    }

не совсем понимаю что должно быть первым аргументом в методе addObject
0
59 / 59 / 20
Регистрация: 21.03.2013
Сообщений: 186
02.09.2014, 22:49
Цитата Сообщение от Visiterr Посмотреть сообщение
Артём121, сейчас у меня вместо того кода этот:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
@RequestMapping(value="/user/find", method = RequestMethod.GET)
    public ModelAndView findUsers(@ModelAttribute("findUser") String userLogin) {
 
        ModelAndView model = new ModelAndView();
        model.addObject("user", (userService.getLogin(userLogin)));
        model.setViewName("profile");
        return model;
    }

не совсем понимаю что должно быть первым аргументом в методе addObject
Все правильно. Первым аргументом идет идентификатор переменной, который будет использоваться в jsp-странице. Вторым - сама эта переменная или объект.
0
0 / 0 / 1
Регистрация: 06.08.2014
Сообщений: 57
03.09.2014, 00:01  [ТС]
Virkom, почему тогда все равно пустая таблица возвращается?
0
59 / 59 / 20
Регистрация: 21.03.2013
Сообщений: 186
03.09.2014, 00:14
Цитата Сообщение от Visiterr Посмотреть сообщение
Virkom, почему тогда все равно пустая таблица возвращается?
Если бы я знал, я бы ответил

А вообще, дебаггер - незаменимая вещь в таких случаях. Запускаешь дебаг и смотришь, что откуда берется и куда возвращается...
0
0 / 0 / 1
Регистрация: 06.08.2014
Сообщений: 57
03.09.2014, 03:47  [ТС]
Делаю так, тогда все получается
UserDaoImpl:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
 @SuppressWarnings("unchecked")
    public User getLogin(String login){
        Query q = sessionFactory.getCurrentSession().createQuery(
                "FROM User where login='login1'"); 
        
        return (User) q.uniqueResult();
     }

т. е. если в запросе указать какой-то конкретный логин, например, 'login1' (он есть в базе), тогда все данные в таблицу выводятся.
кто-нибудь знает как получить именно тот логин, который ввел пользователь при входе в систему?
Так не получается:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
    @SuppressWarnings("unchecked")
    public User getLogin(String login){
 
        Query q = sessionFactory.getCurrentSession().createQuery(
                "FROM User where login=:login"); 
        q.setString("login", login);
        return (User) q.uniqueResult();
     }
0
 Аватар для Артём121
66 / 65 / 13
Регистрация: 15.11.2010
Сообщений: 396
Записей в блоге: 1
03.09.2014, 09:44
Используй вместо setString метод setParameter
Java
1
2
3
4
5
@SuppressWarnings("unchecked")
    public User getLogin(String login){
        return (User) sessionFactory.getCurrentSession().createQuery(
                "FROM User where login=:login").setParameter("login", login).uniqueResult();
     }
0
0 / 0 / 1
Регистрация: 06.08.2014
Сообщений: 57
03.09.2014, 19:02  [ТС]
Артём121, так тоже не получается:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
   @SuppressWarnings("unchecked")
    public User getLogin(String login){
        return (User) sessionFactory.getCurrentSession().createQuery(
        "FROM User where login=:login").setParameter("login", login).uniqueResult();
    }
0
59 / 59 / 20
Регистрация: 21.03.2013
Сообщений: 186
03.09.2014, 23:03
Так. Разберем немного jsp.

1.
<form:form> </form:form>
- это так надо или я чего-то не понимаю? Насколько я помню Java Server Pages, должно быть просто <form></form>

2. имеем форму с методом передачи post. Прописаны также action="/user/find" и commandName="findUser".
Это значит, что в форме должен быть где-то submit.

Т.е. при нажатии на кнопку submit, данные передаются на сервер методом post по URL /user/find. Отрабатывает метод findUser и возвращается найденный юзер.

Так как у вас никакого submit нету в форме, то подозреваю, что вы просто показываете этот jsp и все. Данные на сервер не отправляются, метод findUser не отрабатывает, объект ${user} пуст. Пустые данные и выводятся.


По сути, должно быть примерно так:
1. Пользователь логинится.
2. Мы ищем его id и сохраняем в сессию.
3. Пользователь кликает по ссылке "Профиль".
4. В это время отрабатывает контроллер, который вытягивает из сессии id и по этому id ищет в базе пользователя, добавляет его в ModelAndView и только после этого мы отправляем пользователя на страницу profile.jsp.
Теперь объект с идентификатором ${user} существует. Он подгружен еще ДО загрузки страницы profile.jsp.

А у вас, судя по приведенному коду, страница profile.jsp выводится пустая и ждет, пока случится событие submit данные отправятся на сервер методом post и можно будет искать нужного юзера. Но оно не случится никогда, потому что нет кнопки, которая этот submit вызовет.

Думаю, причина в этом.

Добавлено через 13 минут
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
    <body>
        <form:form method="post" action="/user/find" commandName="findUser">
        <table class="user-table">
            <tr>
                <th colspan="9"><span class="users-label">
            <spring:message code="label.users"/></span></th>
            </tr>
            <tr>
                <th><spring:message code="label.name"/></th>
                <th><spring:message code="label.surname"/></th>
                <th><spring:message code="label.birthdate"/></th>
                <th><spring:message code="label.address"/></th>
                <th><spring:message code="label.tel"/></th>
                <th><spring:message code="label.email"/></th>
                <th><spring:message code="label.login"/></th>
                <th><spring:message code="label.category"/></th>
                <th>&nbsp;</th>
            </tr>
 
            <c value="${userProfile}" var="user">
                <tr>
                    <td>${user.name}</td>
                    <td>${user.surname}</td>
                    <td><calendar:formatDate
                    value="${user.birthdate}" pattern="dd-MM-yyyy"/></td>
                    <td>${user.address}</td>
                    <td>${user.tel}</td>
                    <td>${user.email}</td>
                    <td>${user.login}</td>
                    <td>${user.category.name}</td>
                    <td><a href="${pageContext.request.contextPath}/user/edit/${user.id}">
                    <spring:message code="label.edit"/></a></td>
                </tr>
            </c>
        </table>
 
        <button type="submit"> Загрузить данные </buttonЮ
    
        </form:form>
    </body>

Чтобы проверить мою теорию, попробуйте изменить вот так. Потом нажмите на кнопку. Страница должна перезагрузиться уже с данными.
1
0 / 0 / 1
Регистрация: 06.08.2014
Сообщений: 57
04.09.2014, 04:07  [ТС]
Это <form:form> </form:form> было взято из примера, где есть submit.
Пришлось переделать этот метод так:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
 @RequestMapping("/user/find")
    public ModelAndView findUsers(@ModelAttribute("findUser") String userLogin, Map<String, Object> map) 
 
        ModelAndView model = new ModelAndView();
        model.addObject("userProfile",(userService.getLogin(userLogin)));
        model.setViewName("profile");
        return model;
    }

иначе пишет: HTTP Status 405 - Request method 'POST' not supported.
здесь делаю один к одному как у Вас:
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<body>
    <form:form method="post" action="/user/find" commandName="findUser">
        <table class="user-table">
            <tr>
                <th colspan="9"><span class="users-label">
            <spring:message code="label.users"/></span></th>
            </tr>
            <tr>
                <th><spring:message code="label.name"/></th>
                <th><spring:message code="label.surname"/></th>
                <th><spring:message code="label.birthdate"/></th>
                <th><spring:message code="label.address"/></th>
                <th><spring:message code="label.tel"/></th>
                <th><spring:message code="label.email"/></th>
                <th><spring:message code="label.login"/></th>
                <th><spring:message code="label.category"/></th>
                <th>&nbsp;</th>
            </tr>
 
            <c value="${userProfile}" var="user">
                <tr>
                    <td>${user.name}</td>
                    <td>${user.surname}</td>
                    <td><calendar:formatDate
                    value="${user.birthdate}" pattern="dd-MM-yyyy"/></td>
                    <td>${user.address}</td>
                    <td>${user.tel}</td>
                    <td>${user.email}</td>
                    <td>${user.login}</td>
                    <td>${user.category.name}</td>
                    <td><a href="${pageContext.request.contextPath}/user/edit/${user.id}">
                    <spring:message code="label.edit"/></a></td>
                </tr>
            </c>
        </table>
 
        <button type="submit"> Загрузить данные </button>
 
    </form:form>
    </body>
нажимаю на кнопку и опять пустая таблица возвращается
Так тоже ничего не меняется:
UserController
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
@RequestMapping("/user/find")
       public ModelAndView findUsers(@ModelAttribute("user") String userLogin, Map<String, Object> map) {
 
        ModelAndView model = new ModelAndView();
        model.addObject("user",(userService.getLogin(userLogin)));
        model.setViewName("profile");
        return model;
    }

profile.jsp
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 <form>
        <table class="user-table">
            <tr>
                <th colspan="9"><span class="users-label">
            <spring:message code="label.users"/></span></th>
            </tr>
            <tr>
                <th><spring:message code="label.name"/></th>
                <th><spring:message code="label.surname"/></th>
                <th><spring:message code="label.birthdate"/></th>
                <th><spring:message code="label.address"/></th>
                <th><spring:message code="label.tel"/></th>
                <th><spring:message code="label.email"/></th>
                <th><spring:message code="label.login"/></th>
                <th><spring:message code="label.category"/></th>
                <%--<th><spring:message code="label.password"/></th>--%>
                <th>&nbsp;</th>
            </tr>
                <tr>
                    <td>${user.name}</td>
                    <td>${user.surname}</td>
                    <td><calendar:formatDate
                    value="${user.birthdate}" pattern="dd-MM-yyyy"/></td>
                    <td>${user.address}</td>
                    <td>${user.tel}</td>
                    <td>${user.email}</td>
                    <td>${user.login}</td>
                    <%--<td>${user.password}</td>--%>
                    <td>${user.category.name}</td>
                    <td><a href="${pageContext.request.contextPath}/user/edit/${user.id}">
                    <spring:message code="label.edit"/></a></td>
                </tr>
        </table>
           </form>
         </body>


Добавлено через 14 минут
еще интересно почему если этом запросе написать login='login1':
Java
1
2
3
4
5
6
7
@SuppressWarnings("unchecked")
    public User getLogin(String login){
        Query q = sessionFactory.getCurrentSession().createQuery(
                "FROM User where login='login1'"); 
        
        return (User) q.uniqueResult();
     }
то все выводится
0
59 / 59 / 20
Регистрация: 21.03.2013
Сообщений: 186
04.09.2014, 09:54
Да, у меня в jsp ошибка. Строки "<c value="${userProfile}" var="user">" не должно там быть. Попробуйте удалить ее.


Посмотрите в дебаггере, что отправляется в userService.getLogin(userLogin) и что принимается из него.

Что имеем:

1. Если сразу написать логин в запросе, то все работает.
2. Если пытаться динамически подставлять логин, который вводит пользователь - не работает.

Вывод? Не работает передача введенного пользователем логина в запрос. Это может быть либо ошибка передачи логина из jsp в контроллер, либо неправильно реализован UserService.
Судя по тому, что UserService организован нормально, то делаем вывод, что ошибка где-то в передаче введенного пользователем логина в контроллер. А конкретно - неправильно реализован метод findUsers. Если поставить точку останова на строку
model.addObject("user",(userService.getL ogin(userLogin)));
, запустить отладку и посмотреть, чему равен userLogin, то я почти уверен, что в userLogin не будет содержаться тот логин, который пользователь написал.

Нашел свои давние исходники, и там есть вот такая конструкция:
Java
1
2
3
4
5
@RequestMapping(value = "/user/find", method = RequestMethod.POST)
public String findUsers(@ModelAttribute("findUser") String userLogin, Model model) {
    model.addAttribute("user", (userService.getLogin(userLogin)));
    return "profile";
}
Сразу переделал уже под ваш пример. Не факт, что исходник рабочий, но попробуйте так.
1
0 / 0 / 1
Регистрация: 06.08.2014
Сообщений: 57
04.09.2014, 20:58  [ТС]
Теперь делаю так:
UserController
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
    @RequestMapping(value="/user/profile", method = RequestMethod.GET)
    public String profile(ModelMap model) {
        model.put("user", new User());
        return "profile";
    }
    
    @RequestMapping(value = "/user/find", method = RequestMethod.POST)
    public String findUsers(@ModelAttribute("findUser") String userLogin, Model model) {
        model.addAttribute("user", (userService.getLogin(userLogin)));
        return "profile";
    }

UserDaoImpl:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
  @SuppressWarnings("unchecked")
    public User getLogin(String login){
        return (User) sessionFactory.getCurrentSession().createQuery(
        "FROM User where login=:login").setParameter("login", login).uniqueResult();
    }

menu.jsp (здесь ссылка на профиль):
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
  <td>
                <a href="/user/profile">
                 <spring:message code="label.profile"/></a>
                </td>

profile.jsp:
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
  <body>
        
        <form:form method="post" action="/user/find" commandName="findUser">
       <form>
        <table class="user-table">
            <tr>
                <th colspan="9"><span class="users-label">
            <spring:message code="label.users"/></span></th>
            </tr>
            <tr>
                <th><spring:message code="label.name"/></th>
                <th><spring:message code="label.surname"/></th>
                <th><spring:message code="label.birthdate"/></th>
                <th><spring:message code="label.address"/></th>
                <th><spring:message code="label.tel"/></th>
                <th><spring:message code="label.email"/></th>
                <th><spring:message code="label.login"/></th>
                <th><spring:message code="label.category"/></th>
                <th>&nbsp;</th>
            </tr>
 
                <tr>
                    <td>${user.name}</td>
                    <td>${user.surname}</td>
                    <td><calendar:formatDate
                    value="${user.birthdate}" pattern="dd-MM-yyyy"/></td>
                    <td>${user.address}</td>
                    <td>${user.tel}</td>
                    <td>${user.email}</td>
                    <td>${user.login}</td>
                    <td>${user.category.name}</td>
 
                    <td><a href="${pageContext.request.contextPath}/user/edit/${user.id}">
                    <spring:message code="label.edit"/></a></td>
 
                </tr>
            
        </table>
           <input type="submit" value=" Загрузить данные">
           </form>
 
        </form:form>
    </body>

Дальше нажимаю на кнопку и получаю вот это:
HTTP Status 403 - Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.
По-моему это связано с формой ввода логина и пароля, строки 36, 37, вот форма:
login.jsp
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 <body onload='document.loginForm.login.focus();'>
 
    <div id="login-box">
 
        <h2><spring:message code="label.login"/></h2>
 
        <c:if test="${not empty error}">
            <div class="error">${error}</div>
        </c:if>
        <c:if test="${not empty msg}">
            <div class="msg">${msg}</div>
        </c:if>
 
        <form name='loginForm'
              action="<c:url value='/auth/login_check?targetUrl=${targetUrl}' />"
              method='POST'>
 
            <table>
                <tr>
                    <td><spring:message code="label.login"/>:</td>
                    <td><input type='text' name='login'></td> 
                </tr>
                <tr>
                    <td><spring:message code="label.password"/>:</td>
                    <td><input type='password' name='password'/></td>
                </tr>
 
                <tr>
                    <td colspan='3'><span class="login-button">
                        <input name="submit" type="submit"
                                     value="submit"/></span></td>
                </tr>
 
            </table>
 
            <input type="hidden" name="${_csrf.parameterName}"
                   value="${_csrf.token}"/>
 
        </form>
 
    </div>

Отладчик к сожалению не работает в IntellijIdea 13.
0
59 / 59 / 20
Регистрация: 21.03.2013
Сообщений: 186
04.09.2014, 21:49
Что за объект _csrf? Где его объявление и контроллер, который его обрабатывает?
Беглый просмотр интернетов сказал, что token должен генерироваться для каждого пользователя.
В ошибке говорится, что токен не сгенерирован и является "null"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.09.2014, 21:49
Помогаю со студенческими работами здесь

DLookup, возвращает ли запрос хотя бы одну запись?
запрос: единственное поле: В условии выполнения макрокоманды пишу: DLookup(,) is null Мне нужно, чтобы макрокоманда...

Метод который возвращает строку
Я понимаю что string str делает пустую работу, но без него метод пишет что он возвращает не все параметры и ошибка Visual Studio. ...

RX и Retrofit запрос, который ничего не возвращает
Делаю запросы так: subscription = getApi().getData(token) .subscribeOn(Schedulers.io()) ...

Возвращает одну и ту строку,а при точке остановки разные
Добрый день! Проблема следующая: Есть генератор паролей, причем пробовал и просто методом, пробовал и отдельный статический класс и...

Как отобразить структуру (иерархическую) файлов в JSP?
С JSP только ещё разбираться начал и вот стала задача отобразить иерархичскую структуру файлов на jsp страничке. Всё равно откуда читать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru