JSF で CRUD アプリを作成しています。
私は MovieName を使用しまし
RespectiveID
た。The Moviename はタグにあります。CommandLink
誰かが映画をクリックすると、それぞれの映画の詳細が表示されるようにしたいと思います。PHP の場合は、 ID
inを簡単に追加して、 parameter
movieDetail.php?id=12
DB のクエリに使用できます。私が知る限り、JSFactionLIstener
では Bean 関数を使用して呼び出します。結果を表示するクエリとは別に、Bean関数に何を書くのかわかりません..これで私を助けることができる人は誰でもありがとう
2 に答える
ビューmovieDetail.jsfを作成し、ムービー名を出力しながら、ムービーIDを追加してリンクを作成します。例:movieDetail.jsf?id=12。
movieDetail.jsf<f:viewParam>
でタグを追加し、id値をbeanプロパティに設定します。それから加えて
<f:event type="preRenderView" listener="#{bean.listener}">
Beanに映画の詳細を入力します。
preRenderView
イベントは、ビューがレンダリングされる直前に発生します。だから、これは豆を映画の詳細で満たすのに最適な時期です。preRenderViewイベントでは、listenerメソッドはidプロパティを使用してデータベースにクエリを実行し、映画の詳細を検索します。
<f:metadata>
movieDetail.jsf内の2つのタグを使用します。
<f:metadata>
<f:viewParam name="id" value="#{bean.id}"/>
<f:event type="preRenderView" listener="#{bean.listener}"/>
</f:metadata>
ユーザーがビューにアクセスすると、たとえば、movieDetail.jsf?id = 12、id値12がBeanのidプロパティに設定されます。ビューがレンダリングされる前に、リスナーメソッドが呼び出されます。つまり、この場合public void listener()
はBeanが呼び出され、Beanにムービーの詳細が入力されます。
Sandeepが示唆しているように、間違いなく別のJSFページを使用する必要がありますが、映画のリストを表示するためにデータテーブルを使用することでメリットが得られると思います。それらを操作する方法については、このリンクを確認してください。
リストに表示する各映画のデータのタイプ(名前とID)を保持する単純なクラスを作成する必要があります。次に、それらのオブジェクトタイプのリストを作成し、そのリストを使用してデータテーブルにデータを入力できます。次に、binding属性を使用して、データテーブルをバッキングBeanのHtmlDataTableオブジェクトにバインドし、ユーザーがクリックした行への参照を取得できます。ユーザークリックを処理するメソッドでは、指定したムービーに必要なデータを設定し、単一のムービーを表示するためのビューの名前を返すことができます。