ページ 1 からページ 2 に移動している場合、ページ 1 の送信ボタンをクリックすると、コントロールはページ 1 に対応して記述されたマネージド Bean に移動します。データベースから何らかの結果を取得し、それらをページ 2 に表示したい場合、設定した場合最初のマネージド Bean のアクション メソッドの 2 ページ目に対応するマネージド Bean にデータベースの値を入力すると、2 ページ目でそれらを取得できるようになります。
私のアプローチが正しいかどうか提案してください。
ページ 1 からページ 2 に移動している場合、ページ 1 の送信ボタンをクリックすると、コントロールはページ 1 に対応して記述されたマネージド Bean に移動します。データベースから何らかの結果を取得し、それらをページ 2 に表示したい場合、設定した場合最初のマネージド Bean のアクション メソッドの 2 ページ目に対応するマネージド Bean にデータベースの値を入力すると、2 ページ目でそれらを取得できるようになります。
私のアプローチが正しいかどうか提案してください。
この方法で、Bean1 という名前の Bean を Bean2 に注入できます。
@ManagedBean
@RequestScoped
public Bean2 {
@ManagedProperty(value="#{bean1}")//this is EL name of your bean
private Bean1 injectedBean;
public void setBean1(Bean1 value) {
injectedBean = value; //provide setter for it
}
@PostConstruct
private void init() {
List<YourData> list = injectedBean.getDBData(); //now you can fetch your list
}
注入用のセッターを提供する必要があり、注入された Bean のスコープは常に Bean のスコープと同じかそれ以上である必要があることに注意してください (この場合、Bean1 は少なくとも RequestScope である必要があります)。
PSまた、すべてのデータベースデータベース操作を実行できるある種のDAO Bean(EJB BeanまたはJSF Managed Beanの場合もあります)を使用して、DBとの連携が必要なすべてのManagedBeanに注入することもできます。