Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446

Как описать контроллер для страницы JSP c формой для ввода данных и таблицей

21.05.2019, 21:47. Показов 2105. Ответов 8

Студворк — интернет-сервис помощи студентам
Доброго времени!

Ребята подскажите пожалуйста как описать контроллер для страницы JSP c таблицей и формой для ввода данных?
В форму должны вводится параметры для фильтрации данных в этой таблице.

Т.е. есть таблица, в которую подгружаются данные из БД и есть форма для ввода данных, по которым должны осуществляться новые запросы к БД и их результат обновлять таблицу.

Как описать контроллер отдельно для таблицы и отдельно для формы запроса данных разобрался, но как в одном контроллере совместить и то и другое не знаю (

Работающий контроллер для загрузки, без возможностей формы:

Java
1
2
3
4
5
6
7
8
9
public class UserController {
@RequestMapping(value = "/main", method = RequestMethod.GET)//Mapping web context, на который будет реагировать метод
    public String main(Model uiModel) {
     //   List<WeatherOpenMap> weatherOpenMap=weatherOpenMapService.getWeatherForecast(attributesRequest.getLatitude(),attributesRequest.getLongitude());
        List<FloodView> listFloodViews=floodService.getAllFloodViev();
        uiModel.addAttribute("listFlood",listFloodViews);
        return "main_page";
    }
}
Объект для формы данных:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class AttributesRequestWeather {
    private String latitude;
    private String longitude;
    private int yearStart;
    private int monthStart;
    private int dayStart;
    private int houreStart;
    private int yearFinish;
    private int monthFinish;
    private int dayFinish;
    private int houreFinish;
    private String servisAPI;
 
    public AttributesRequestWeather() {
    }
}
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
49
50
51
<html>
<head>
    <title>Главная страница</title>
</head>
 
<body>
<div>
    <table class="flood">
        <thead>
        <tr>
            <th>Координаты</th>
            <th>Населённый пункт</th>
            <th>Дата</th>
            <th>Время</th>
            <th>Снег</th>
            <th>Дождь</th>
            <th>Снег с дождём</th>
        </tr>
        </thead>
        <tbody>
        <c:forEach items="${listFlood}" var="flood">
            <tr>
                <td class="geo">${flood.geographKoordsPost}</td>
                <td>${flood.nameLocality}</td>
                <td>${flood.date}</td>
                <td>${flood.time}</td>
                <td>${flood.snow}</td>
                <td>${flood.rain}</td>
                <td>${flood.snowRain}</td>
             </tr>
        </c:forEach>
        </tbody>
    </table>
</div>
 
<div>
<spring:form modelAttribute="AttributesRequestWeather" method="post" action="/fast-water/water/main">
    <spring:input path="latitude"/>
    <spring:input path="longitude"/>
    <spring:input path="yearStart"/>
    <spring:input path="monthStart"/>
    <spring:input path="dayStart"/>
    <spring:input path="yearFinish"/>
    <spring:input path="monthFinish"/>
    <spring:input path="dayFinish"/>
    <spring:button>Обновить данные</spring:button>
</spring:form>
</div>
 
</body>
</html>
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2019, 21:47
Ответы с готовыми решениями:

Простенькая БД с формой для ввода данных
Есть таблица1 в которую будут вноситься данные по продажам. Через форму &quot;ввод данных&quot; Я перепробовала много вариантов кнопок для...

Как добавить строки для ввода данных в форму без перезагрузки страницы?
Есть страница asp, на которой форма контракта с клиентом, она заполняется, сабмитится, данные вносятся в базу, все ок. Теперь понадобилось...

Для разработанного класса объектов разработать asp-страницы для ввода данных объекта и передачу на сервер
Для разработанного класса объектов(класс был создан раннее). Нужно разработать asp-страницы для ввода данных объекта и передачу на...

8
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
21.05.2019, 23:20
Лучший ответ Сообщение было отмечено Volodya_ как решение

Решение

наверно надо @RequestParam добавить
1
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
22.05.2019, 15:01  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
наверно надо @RequestParam добавить
Я попытался это сделать:
Java
1
2
3
4
5
6
7
8
@RequestMapping(value = "/main", method = RequestMethod.GET)//Mapping web context, на который будет реагировать метод
    public String main(Model uiModel, @RequestParam("latitude") String latitude, @RequestParam("longitude") String longitude) throws Exception {
        List<OpenMap> listOpenMap=OpenMapService.getForecast(latitude,longitude);
        uiModel.addAttribute("listOpenMap",listOpenMap);
        List<FloodView> listFloodViews=floodService.getAllFloodViev();
        uiModel.addAttribute("listFlood",listFloodViews);
        return "main_page";
    }
Мне выдало исключение:
Message Required String parameter 'latitude' is not present

Description The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
Т.е. если я правильно понял, при таком способе он ожидает увидеть параметры уже в строке http, а их у меня там ещё нет, они могут появиться в форме на странице уже после её загрузки

Добавлено через 9 минут
Если отправить их в http-строке "main?latitude=55.09&longitude=51", то он их принимает, но это мне не подходит, так как я их при загрузки ещё не знаю.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
22.05.2019, 15:02
открой документацию на @RequestParam и прочитай
0
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
22.05.2019, 15:26  [ТС]
xoraxax,
ну как-то ясней не стало, может быть читаю не то:
https://docs.spring.io/spring/... Param.html
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
22.05.2019, 15:40
boolean required
Whether the parameter is required.
1
7 / 4 / 4
Регистрация: 29.11.2013
Сообщений: 28
22.05.2019, 16:28
в форме POST, в методе GET
0
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
22.05.2019, 16:57  [ТС]
xoraxax,
Цитата Сообщение от xoraxax Посмотреть сообщение
boolean required
Whether the parameter is required.
Добавил данный параметр - избавился о исключения:
Java
1
2
3
4
5
6
7
8
@RequestMapping(value = "/main", method = RequestMethod.GET)//Mapping web context, на который будет реагировать метод
    public String main(Model uiModel, @RequestParam("latitude") String latitude, @RequestParam("longitude") String longitude) throws Exception {
        List<OpenMap> listOpenMap=OpenMapService.getForecast(latitude,longitude);
        uiModel.addAttribute("listOpenMap",listOpenMap);
        List<FloodView> listFloodViews=floodService.getAllFloodViev();
        uiModel.addAttribute("listFlood",listFloodViews);
        return "main_page";
    }
Но передать новый параметр не получается. Если я оставляю тип запроса GET
Java
1
@RequestMapping(value = "/main", method = RequestMethod.GET)
,
то когда жму на кнопку формы, которая вызывает этот же контроллер, мне выдаёт исключение, что контроллер не POST, а когда я его делаю POST, то тогда страница не прогружается так как требует контроллер GET
Message Request method 'GET' not supported
Как тут быть?

Добавлено через 9 минут
Цитата Сообщение от Esen Посмотреть сообщение
в форме POST, в методе GET
Везде поставил GET, исключение пропали, но при нажатии на кнопку котроллер не вызывается
HTML5
1
2
3
4
5
6
7
8
9
10
11
<form method="GET" action="/fast-water/water/main">
    <input type="text" path="latitude"/>
    <input type="text" path="longitude"/>
    <input type="text" path="yearStart"/>
    <input type="text" path="monthStart"/>
    <input type="text" path="dayStart"/>
    <input type="text" path="yearFinish"/>
    <input type="text" path="monthFinish"/>
    <input type="text" path="dayFinish"/>
    <button>Обновить данные</button>
</form>
0
15 / 13 / 3
Регистрация: 20.02.2018
Сообщений: 446
23.05.2019, 16:11  [ТС]
Esen,
xoraxax,

Ребята заработало )
У Button, ещё нужно было указать тип "submit", что бы он слал запрос именно на сервер.

Спасибо, за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.05.2019, 16:11
Помогаю со студенческими работами здесь

Разработать форму для ввода исходных данных и вывода результатов, используя компоненты страницы Standard
1.Определить, является ли заданное целое число А нечетным двузначным числом 2.Заданы площади круга и квадрата. Определить, поместится ли...

Разработать форму для ввода исходных данных и вывода результатов, используя компоненты страницы Standard.
ДОбрый вечер уважаемые форумчане! Пишу вам и прошу помощи в написании программы. Если у вас будет свободное время, я очень буду...

JSOUP POST. В ответ вместо JSon приходит разметка страницы с полями для ввода данных
Делаю пост запрос к апи сайта. Назад должен получить json, однако получаю разметку страницы с полями для ввода данных. Т.е. как будто...

Нумерованные страницы для вывода информации JSP
Есть много сайтов где постоянно обновляется контент, там постоянно много информации, например сайты новостей и там есть такая возможность...

Составить макет данных и написать программу для ввода и реализации печати введенных данных для платёжной ведомости
1. Составить макет данных и написать программу для ввода и реализации печати введенных данных для платёжной ведомости -...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru