Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 使用CommandLink在JSF中显示值_Jsp_Jsf_Jakarta Ee_Javabeans_Commandlink - Fatal编程技术网

Jsp 使用CommandLink在JSF中显示值

Jsp 使用CommandLink在JSF中显示值,jsp,jsf,jakarta-ee,javabeans,commandlink,Jsp,Jsf,Jakarta Ee,Javabeans,Commandlink,我正在JSF中创建一个CRUD应用程序。 我使用了MovieName和各自的ID。MovieName位于CommandLink标记中。现在我希望,如果有人单击电影,它将显示相应电影的详细信息。如果是PHP,我可以轻松地将ID附加到参数movieDetail.PHP?ID=12中,并将其用于查询DB。但作为据我所知,在JSF中,我们使用actionLIstener并为其调用bean函数。 除了显示结果的查询之外,我不知道我会在bean函数中写些什么。有人能帮我吗 谢谢创建一个view movieD

我正在JSF中创建一个CRUD应用程序。 我使用了MovieName和
各自的ID
。MovieName位于
CommandLink
标记中。现在我希望,如果有人单击电影,它将显示相应电影的详细信息。如果是PHP,我可以轻松地将
ID
附加到
参数
movieDetail.PHP?ID=12
中,并将其用于查询DB。但作为据我所知,在JSF中,我们使用
actionLIstener
并为其调用bean函数。 除了显示结果的查询之外,我不知道我会在bean函数中写些什么。有人能帮我吗
谢谢

创建一个view movieDetail.jsf,并在输出电影名称时通过附加电影ID创建链接。e、 g.movieDetail.jsf?id=12

在movieDetail.jsf中添加
标记并将id值设置为bean属性。然后加上

并用电影细节填充bean

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

在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属性。在呈现视图之前,将调用bean的侦听器方法,即在本例中,调用bean的
public void listener()
,该方法将电影细节填充到bean中。

正如Sandeep所建议的,您应该明确地使用一个单独的JSF页面,但我认为使用datatable来显示电影列表可能会使您受益。看看这篇关于如何与他们合作的文章


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

这意味着我不需要在链接上添加actionListener?不,您不必这样做。只需输出如下所示的html链接:。您所要做的就是创建一个名为movieDetail.jsf的视图,该视图将使用传递的id并查找电影的详细信息。看看这个链接:你不需要使用h:commandLink。只需使用h:link。e、 这不起作用,因为我无法在下一页收到可变ID。本文由SO的balus C撰写。。我只是喜欢那个家伙。。谢谢分享