我正在JSF中创建一个CRUD应用程序。
我使用过MovieName和
RespectiveID
.Moviename是CommandLink
标签。现在我想要如果有人点击电影就会显示相应电影的细节。如果它是PHP,我可以轻松追加ID
parameter
中的movieDetail.php?id=12
并使用它来查询DB.But就我所知,在JSF中我们使用actionLIstener
并为它调用bean函数。
我不知道我会在bean函数中写什么,除了查询以显示结果..任何人都可以帮助我这个
感谢
答案 0 :(得分: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事件中,listener方法将使用id属性来查询数据库并查找电影的详细信息。
在movieDetail.jsf中使用<f:metadata>
内的两个标签:
<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属性。在呈现视图之前,调用了监听器方法,即在这种情况下调用了bean public void listener()
,它用电影细节填充bean。
答案 1 :(得分:0)
你应该肯定使用单独的JSF页面,如Sandeep建议的那样,但我认为你可能会受益于使用数据表来显示电影列表。查看此link有关如何使用它们的信息。
您应该创建一个简单的类,其中包含您希望在列表中显示的每部电影的数据类型(名称和ID)。然后,您可以创建这些对象类型的List,并使用该列表填充数据表。然后使用binding属性,可以将数据表绑定到辅助bean中的HtmlDataTable对象,并获取对用户单击的行的引用。在处理用户单击的方法中,您可以设置指定影片所需的数据,并返回用于显示单个影片的视图名称。