2

我正在 JSF 中创建一个 CRUD 应用程序。在此处输入图像描述 我已经使用了 MovieName 和RespectiveID.The Moviename 在标签中。CommandLink现在我希望如果有人点击电影,它将显示相应电影的详细信息。如果是 PHP,我可以轻松附加IDparameter movieDetail.php?id=12使用它来查询 DB。但是据我所知,在 JSF 中我们使用actionLIstener并调用了一个 bean 函数。除了查询以显示结果之外,我不知道我会在 bean 函数中写什么......任何可以帮助我的人谢谢

4

2 回答 2

1

创建一个视图 movieDetail.jsf 并在输出电影名称时通过附加电影 ID 创建链接。例如 movieDetail.jsf?id=12 。

在 movieDetail.jsf 添加<f:viewParam>标签并将 id 值设置为 bean 属性。然后加

<f:event type="preRenderView" listener="#{bean.listener}">并用电影细节填充 bean。

preRenderView在视图渲染之前触发事件。因此,这是用电影细节填充 bean 的最佳时机。在 preRenderView 事件中,侦听器方法将使用 id 属性来查询数据库并查找电影的详细信息。

<f:metadata>在你的 movieDetail.jsf 中使用两个标签:

<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。

于 2012-12-27T15:10:30.797 回答
0

正如 Sandeep 建议的那样,您绝对应该使用单独的 JSF 页面,但我认为您可能会受益于使用数据表来显示电影列表。查看此链接以了解如何使用它们。

您应该创建一个简单的类,该类包含您希望在列表中显示的每部电影的数据类型(名称和 ID)。然后,您可以创建这些对象类型的列表并使用该列表填充数据表。然后使用 binding 属性,您可以将数据表绑定到支持 bean 中的 HtmlDataTable 对象,并获取对用户单击的行的引用。在处理用户点击的方法中,可以设置指定影片所需的数据,并返回显示单个影片的视图名称。

于 2012-12-27T16:09:44.547 回答