powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Реализация REST навигации
7 сообщений из 7, страница 1 из 1
Реализация REST навигации
    #38688119
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно реализовать REST навигацию. После учебника Хорстмана и Гугла получилось следующее:
car.xhtml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
            <p:dataGrid var="car" value="#{postController.cars}" columns="3" rows="12">
                <p:column>
                    <p:panel header="#{car.autoMark}">
                        <h:panelGrid columns="1">
                            <h:outputText value="#{car.autoModel}" />
                            <h:button value="Подробно" outcome="carInfo" includeViewParams="true"> <!-- includeViewParams что именно сохраняет? указанные  <f:param/> ? -->
                                <f:param name="id" value="#{car.id}"/>
                            </h:button>
                        </h:panelGrid>
                    </p:panel>
                </p:column>
            </p:dataGrid>



далее идет страница carInfo.xhtml
Код: xml
1.
2.
3.
4.
5.
6.
    <h:body>
        <f:metadata>
            <f:viewParam name="carId" value="#{car.id}" /> <!-- что именно должно быть в  value? сейчас просто бин -->
        </f:metadata>
        <h:outputText value="#{car.id}" /> <!-- значение не отображается -->
    </h:body>


Скажите, где ошибка?
...
Рейтинг: 0 / 0
Реализация REST навигации
    #38688141
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вернее навигация работает, а интересует передача данных (car.id, car.autoMark, car.autoModel и т.д.) с страницы car.xhtml на страницу carInfo.xhtml . Как передать данные? Или только новая выборка из БД?
...
Рейтинг: 0 / 0
Реализация REST навигации
    #38688164
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть подозрение, что названия выходных и входных параметров должны совпадать, сейчас они разные
Код: html
1.
2.
3.
<f:param name="id" value="#{car.id}"/>
...
<f:viewParam name="carId" value="#{car.id}" />
...
Рейтинг: 0 / 0
Реализация REST навигации
    #38688197
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivanraЕсть подозрение, что названия выходных и входных параметров должны совпадать, сейчас они разные
Код: html
1.
2.
3.
<f:param name="id" value="#{car.id}"/>
...
<f:viewParam name="carId" value="#{car.id}" />



Исправил, но значения все-равно не отображаются.
...
Рейтинг: 0 / 0
Реализация REST навигации
    #38688219
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а собственно бин с именем "car" существует?
На странице car.xhtml #{car} указывает на элемент коллекции, а на странице carInfo.xhtml, вероятно, на пустое место?
...
Рейтинг: 0 / 0
Реализация REST навигации
    #38688276
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivanraа собственно бин с именем "car" существует?
На странице car.xhtml #{car} указывает на элемент коллекции, а на странице carInfo.xhtml, вероятно, на пустое место?

Вот бин
Код: 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.
38.
package bean;

import javax.inject.Named;

@Named
public class Car {
    
    private long id;
    private String autoMark;
    private String autoModel;
    
    public Car() {
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getAutoMark() {
        return autoMark;
    }

    public void setAutoMark(String autoMark) {
        this.autoMark = autoMark;
    }

    public String getAutoModel() {
        return autoModel;
    }

    public void setAutoModel(String autoModel) {
        this.autoModel = autoModel;
    }
}



Через этот бин наполняется коллекция на странице car.xhtml #{postController.cars} .
...
Рейтинг: 0 / 0
Реализация REST навигации
    #38688310
AK1988
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В книге написано следующее
ХорстманЧасто возникает необходимость в получении дополнительных данных после зада!
ния параметров представления. Например, после того как будет задан параметр пред!
ставления определенного товара, может потребоваться выбрать данные о свойствах
товара из базы данных для дальнейшей подготовки к отображению страницы с опи!
санием товара. В главе 8 будет показано, как возложить обязанности по выполнению
этой работы на обработчик события preRenderView.

Получается нужно все-равно делать запрос в бд для получения данных?

ХорстманПредусмотрен удобный сокращенный способ включения всех параметров пред!
ставления в строку запроса. Он состоит в том, что добавляется один атрибут:
<h:link outcome="index" includeViewParams="true" value="Skip">
С помощью этого способа можно переносить все параметры представления с од!
ной страницы на другую, что представляет собой обычное требование к приложению,
поддерживающему метод REST.
Для определения параметров представления может использоваться тег f:param.
Например:
<h:link outcome="index" includeViewParams="true" value="Skip">
<f:param name="q" value="#{quizBean.currentProblem + 1}"/>
</h:link>

Зачем тег includeViewParams если все-равно нужно указывать f:param ?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Реализация REST навигации
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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