JSF を学習していますが、オブジェクトを Bean パラメータに送信すると、オブジェクトのインスタンスが正しくありません。
私は多くの映画を一覧表示するページを持っています。映画に関する完全な情報を見たい場合は、次のコードを含むページに移動するリンクをクリックします。
<h:form>
<h:commandLink action="#{sharedMovie.share(movie)}" value="Share">
<div class="movieDetail">
<div class="movieDetailTitle">"#{movie.title}"</div>
<div class="movieDetailYear">"#{movie.year}"</div>
<div class="movieDetailSynopsis">"#{movie.synopsis}"</div>
</div>
</h:form>
ムービー Bean にはリクエスト スコープがあります。
問題は、[共有] をクリックすると、ページに表示されているムービーではなく、クラスsharedMovie
が の新しいインスタンスを受け取ることです。Movie
この問題が発生する他のページを呼び出した場合にのみ、表示されたデータはすべて正しいです。
、 を使用して、ムービー ID だけを送信しようとしましたが (ただし、常に 0 です)、f:setPropertyActionListener
何f:param
も機能しません。プロジェクトをデバッグする場合、共有リンクをクリックすると、常に Movie クラスのコンストラクター内のブレークポイントにヒットします。
このインスタンスを正しく渡すにはどうすればよいですか?