Гость
Форумы / Java [игнор отключен] [закрыт для гостей] / RestApi +Ajax query to MVC model / 25 сообщений из 105, страница 1 из 5
05.01.2020, 01:38
    #39910859
gycb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
Собственно есть рест контроллер который возврщает List с объектами
Код: java
1.
2.
3.
    @PostMapping("/fio")
    public List<User> fioSeach(@RequestParam("fio") String fio){
        return userRepo.fioSearch(fio);


этот рест контроллер дергается ajax скриптом
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    $(document).ready(function(){
    $("#fio").blur(function(){
        $.ajax
        ({
        type: "POST",
            data: {"fio" :$('#fio').val(),"_csrf" :$('#csrf').val()},
            url: '/moderation/fio'
        });
    });
});


и нужно результат этого запроса положить вот сюда ,где fiousers -лист ,который нам вернул рест контроллер
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<#if fiousers??>
<div>
    <h3><span class="badge badge-warning ">Пользователь</span></h3>
</div>
<#list fiousers as fu>
<ul class="list-group">
    <li><a href="/moderation/${fu.id?c}" class="badge badge-secondary mb-1">${fu.fio}</a></li>
</#list>
</ul>
</#if>
...
Рейтинг: 0 / 0
05.01.2020, 01:48
    #39910862
gycb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
порыскал по гуглам - я так понимаю
в скрипте нужно сделать что то на подобии вот этого
Код: javascript
1.
2.
3.
4.
5.
     success:function(serverData)
            {
              
                $("#someusers").html(serverData.serverInfo);
            },


и в ftl сделать див класс someusers
а что дальше не понятно
...
Рейтинг: 0 / 0
05.01.2020, 01:50
    #39910863
gycb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
другими словами нужно как то положить в мvc модель атрибут ,который в свою очередь получаем ajax запросом и при этом чтобы на странице обновилась инфа
...
Рейтинг: 0 / 0
05.01.2020, 05:20
    #39910864
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
gycb
другими словами нужно как то положить в мvc модель атрибут ,который в свою очередь получаем ajax запросом и при этом чтобы на странице обновилась инфа


"Вы либо шатны оденьте, либо крестик снимите". (с) Не мой

Т.е. вам нужен js-фреймфорк, а не шаблонизатор.
Можно и на чистом js, но я вижу у вас тут используется jQuery.
Поэтому можно посмотрить в сторону jQuery-ui .
...
Рейтинг: 0 / 0
05.01.2020, 09:07
    #39910878
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
gycb,

для начала определись с поведением своего API
ты хочешь принимать JSON, а в ответ отдавать готовый HTML?
...
Рейтинг: 0 / 0
05.01.2020, 09:28
    #39910882
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
skyANA,
Ну по сути да,апи отрабатывает на Джейсон ,обратно отдаёт либо лист либо модель в которой этот лист лежит и обновляет див класс в котором этот лист.ну либо прям целиком возвращает див класс с обновлёнными данными -я так понимаю тут возможен только последний вариант

Это обычная поисковая строка-
Ввёл фамилию курсор убрал с поля и внизу отобразился лист со всеми юзерами с фамилиями похожими
...
Рейтинг: 0 / 0
05.01.2020, 09:37
    #39910883
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
gycb,
Логичней ПОЛУЧАТЬ объекты по Get а не по Post.
Не?
...
Рейтинг: 0 / 0
05.01.2020, 09:41
    #39910884
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
asv79,
Почему этот юз кейс не сделать по Get если REST?
...
Рейтинг: 0 / 0
05.01.2020, 09:56
    #39910887
gycb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
PetroNotC Sharp
asv79,
Почему этот юз кейс не сделать по Get если REST?

Петро создай отдельную тему там подискутируем почему пост ,а не гет.
...
Рейтинг: 0 / 0
05.01.2020, 10:32
    #39910889
gycb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
mad_nazgul
gycb
другими словами нужно как то положить в мvc модель атрибут ,который в свою очередь получаем ajax запросом и при этом чтобы на странице обновилась инфа


"Вы либо шатны оденьте, либо крестик снимите". (с) Не мой

Т.е. вам нужен js-фреймфорк, а не шаблонизатор.
Можно и на чистом js, но я вижу у вас тут используется jQuery.
Поэтому можно посмотрить в сторону jQuery-ui .

я верно понимаю что используя шаблонизатор я не смогу асинхронно обновить один из div не обновляя всю страницу целиком
если такой возможности нет-то тему можно закрывать ,от шаблонизатора я отказаться не смогу в данном случае
...
Рейтинг: 0 / 0
05.01.2020, 10:36
    #39910891
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
gycb
я верно понимаю что используя шаблонизатор я не смогу асинхронно обновить один из div не обновляя всю страницу целиком
если такой возможности нет-то тему можно закрывать ,от шаблонизатора я отказаться не смогу в данном случае


Не совсем.
Можно использовать JSF или Vaadin, как шаблонизаторы.
Там есть асинхронные способы обновления. Но контроллеры будут не REST.

Хотя что вам мешает использовать и шаблонизатор, и js-фреймворк.
...
Рейтинг: 0 / 0
05.01.2020, 10:39
    #39910893
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
gycb
PetroNotC Sharp
asv79,
Почему этот юз кейс не сделать по Get если REST?

Петро создай отдельную тему там подискутируем почему пост ,а не гет.

Еще не хватало чтобы двоечник командовал где кому писать.
...
Каков твой ответ, таков и мой.
...
Рейтинг: 0 / 0
05.01.2020, 11:02
    #39910897
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
asv79
skyANA,
Ну по сути да,апи отрабатывает на Джейсон ,обратно отдаёт либо лист либо модель в которой этот лист лежит и обновляет див класс в котором этот лист.ну либо прям целиком возвращает див класс с обновлёнными данными -я так понимаю тут возможен только последний вариант

Это обычная поисковая строка-
Ввёл фамилию курсор убрал с поля и внизу отобразился лист со всеми юзерами с фамилиями похожими

Возможны тут разные варианты: вернуть JSON и отрендерить его на клиенте, или вернуть готовый HTML и вставить в нужное место, или редирект на страницу результатов поиска.
Остальная часть продукта как написана?
...
Рейтинг: 0 / 0
05.01.2020, 11:05
    #39910898
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
asv79
Это обычная поисковая строка-
Ввёл фамилию курсор убрал с поля и внизу отобразился лист со всеми юзерами с фамилиями похожими
элементарная операция и столько проблем?
- набрал стас
- отправил на сервер
- в ответ получил готовый html
- вставил его в нужное место dom

в чем проблема?
...
Рейтинг: 0 / 0
05.01.2020, 11:10
    #39910899
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
skyANA,весь продукт на фримаркере,редирект и отказ от этого шаблонизатора исключён.
Нужно чтобы вбивали в строку поиска текст и он на каждое изменение отправлял ajax запрос на сервер и обновлял данные в каком то диве ,но не страницу целиком,иначе просто в этой затее теряется смысл
Я могу переделать сам контролёр или страницу (добавить нужные дивы) но не более
...
Рейтинг: 0 / 0
05.01.2020, 11:21
    #39910902
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
asv79
Нужно чтобы вбивали в строку поиска текст и он на каждое изменение отправлял ajax запрос на сервер и обновлял данные в каком то диве ,но не страницу целиком,иначе просто в этой затее теряется смысл
Я могу переделать сам контролёр или страницу (добавить нужные дивы) но не более
тебе показать работающий пример на чистом js, ws и без всяких наворотов?
...
Рейтинг: 0 / 0
05.01.2020, 11:21
    #39910903
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
asv79,

это называется partial rendering
метод контроллера должен вернуть частичное представление в виде готового html
на клиенте тупо вставить в нужный контейнер

опять испытываешь стеснение спросить у своих коллег пример?
...
Рейтинг: 0 / 0
05.01.2020, 11:26
    #39910904
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
вадя,
Он просто перепрыгнул понятия урл и http сразу на спринг.
Получилась магия.
...
Рейтинг: 0 / 0
05.01.2020, 11:30
    #39910905
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
вадя
asv79
Это обычная поисковая строка-
Ввёл фамилию курсор убрал с поля и внизу отобразился лист со всеми юзерами с фамилиями похожими
элементарная операция и столько проблем?
- набрал стас
- отправил на сервер
- в ответ получил готовый html
- вставил его в нужное место dom

в чем проблема?

Именно это я и хочу
Я так понимаю что в моем скрипте должна быть часть после sucess которая и возвращает готовый html элемент?
И если да ,то отобразится ли этот элемент в темплейте
Ведь насколько я знаю это не совместимые вещи
...
Рейтинг: 0 / 0
05.01.2020, 11:33
    #39910906
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
вадя,тут вопрос будет ли это работать внутри фримейкера
Если нет ,то тогда тему можно закрыть
...
Рейтинг: 0 / 0
05.01.2020, 11:34
    #39910907
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
gycb
Собственно есть рест контроллер который возврщает List с объектами
Код: java
1.
2.
3.
    @PostMapping("/fio")
    public List<User> fioSeach(@RequestParam("fio") String fio){
        return userRepo.fioSearch(fio);


этот рест контроллер дергается ajax скриптом
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    $(document).ready(function(){
    $("#fio").blur(function(){
        $.ajax
        ({
        type: "POST",
            data: {"fio" :$('#fio').val(),"_csrf" :$('#csrf').val()},
            url: '/moderation/fio'
        });
    });
});


и нужно результат этого запроса положить вот сюда ,где fiousers -лист ,который нам вернул рест контроллер
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<#if fiousers??>
<div>
    <h3><span class="badge badge-warning ">Пользователь</span></h3>
</div>
<#list fiousers as fu>
<ul class="list-group">
    <li><a href="/moderation/${fu.id?c}" class="badge badge-secondary mb-1">${fu.fio}</a></li>
</#list>
</ul>
</#if>



Тебе не на форум надо вопросы задавать, а какие-то базовые концепты почитать (правда хз где их взять) и научиться формулировать запросы, т.е. вопрос типа: "у меня есть что-то там на freemarker, какой-то jquery и REST-сервис - как их сдружить" - это не вопрос, а хрен знает что, ты вот только через 10 постов просрался и написал что тебе нужно на самом деле:

asv79
skyANA,весь продукт на фримаркере,редирект и отказ от этого шаблонизатора исключён.
Нужно чтобы вбивали в строку поиска текст и он на каждое изменение отправлял ajax запрос на сервер и обновлял данные в каком то диве ,но не страницу целиком,иначе просто в этой затее теряется смысл
Я могу переделать сам контролёр или страницу (добавить нужные дивы) но не более


а нужно тебе следующее в терминах html и jquery:
- нарисовать input, куда пользователь что-то будет вбивать
- на этот input повесть onchange/onpaste, который при изменении инпута будет:
-- смотреть что ввели (достаточно данных или нет)
-- на div вешать шильдик типа "Loading ..."
-- слать запрос к REST
-- при получении ответа заменять содержимое div какими-то данными (тут можно повестись на посты от @вадя и из REST принимать сразу HTML, но это нифига уже не REST либо отрисовывать DOM самостоятельно)

как только придет понимание того как оно работает (т.е. каким образом динамически отрисовывать DOM при помощи JS), придет идея что нужно большую часть рутины заменить на какой-нить фреймворк, если у тебя не SPA, то jquery здесь не лучший кмк выбор, лучше если есть возможность, то переключиться на ExtJS если лицензия позволяет.
...
Рейтинг: 0 / 0
05.01.2020, 11:36
    #39910908
asv79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
skyANA
asv79,

это называется partial rendering
метод контроллера должен вернуть частичное представление в виде готового html
на клиенте тупо вставить в нужный контейнер

опять испытываешь стеснение спросить у своих коллег пример?

Коллеги в отпусках)
...
Рейтинг: 0 / 0
05.01.2020, 11:40
    #39910910
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
Андрей Панфилов,
+1
...
Рейтинг: 0 / 0
05.01.2020, 11:42
    #39910911
gycb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
mad_nazgul
gycb
я верно понимаю что используя шаблонизатор я не смогу асинхронно обновить один из div не обновляя всю страницу целиком
если такой возможности нет-то тему можно закрывать ,от шаблонизатора я отказаться не смогу в данном случае


Не совсем.
Можно использовать JSF или Vaadin, как шаблонизаторы.
Там есть асинхронные способы обновления. Но контроллеры будут не REST.

Хотя что вам мешает использовать и шаблонизатор, и js-фреймворк.

так я об этом и спрашиваю.....
...
Рейтинг: 0 / 0
05.01.2020, 11:44
    #39910912
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RestApi +Ajax query to MVC model
ТС вероятно захотел крутую динамику ГУИ и врубил спринг MVC.
А потребовался JS.
Ему лень стало, и он пришел в java спрашивать про JS.
Бывает.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / RestApi +Ajax query to MVC model / 25 сообщений из 105, страница 1 из 5
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]