JSF & Facelets Flow - PullRequest
       20

JSF & Facelets Flow

1 голос
/ 31 октября 2008

У меня есть динамическая страница Facelets, которая должна отображать информацию из базы данных при загрузке страницы. На данный момент в потоке не было ни одной подачи формы. Каждый пример JSF, который я могу найти, показывает только отправку формы с динамическими результатами на следующей странице.

Каждый звонок, который я делаю в нашей базе данных, в настоящее время происходит после того, как действие было инициировано отправкой формы. Куда должен идти этот код, если форма не была отправлена, и как мне ее вызвать? Фрагмент кода действительно поможет мне!

Ответы [ 3 ]

2 голосов
/ 31 октября 2008

Вы должны иметь возможность выполнять свою работу по инициализации в конструкторе (или лениво в одном из ваших методов доступа) вашего управляемого компонента.

1 голос
/ 31 октября 2008

Если вы используете Пружинная интеграция (см. Также здесь ), это просто.

В вашем бобе поддержки просто используйте что-то вроде:

public class BackingBean implements InitializingBean
{
    public void afterPropertiesSet()
    {
        loadInitialData();
    }
}

Если вы не интегрируетесь с Spring, есть два варианта:

  1. Загрузка начальных данных в конструктор класса;
  2. В вашем faces-config.xml вы можете установить свойства для внедрения. Свойства гарантированно устанавливаются в порядке, указанном в файле конфигурации. Итак, просто создайте фиктивное свойство и затем в этом методе загрузите данные по умолчанию. то есть создайте метод public void setLoaded(boolean loaded) { loadInitialData(); }, и в вашем файле Faces-config.xml «загружен», установленный в качестве свойства для этого базового компонента.

Надеюсь, это все понятно!

0 голосов
/ 31 октября 2008

Вы пишете (с добавлением моего акцента):

Каждый звонок в нашу базу данных в настоящее время происходит после действия был вызван отправкой формы. Куда должен идти этот код если не было отправки формы , и как мне ее вызвать? фрагмент кода действительно помог бы мне!

Мне кажется, что вы хотите получить информацию из базы данных до для формирования представления.

Мне кажется, что вы хотите сделать Ajax-вызов для запроса к базе данных. Вызов Ajax может инициировать событие, отличное от события отправки формы. Это, вероятно, повлечет за собой использование Javascript, а не фреймворка Faces.

...