Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Java JSF2.0初学者在bean中遇到参数和属性问题_Java_Jsf 2 - Fatal编程技术网

Java JSF2.0初学者在bean中遇到参数和属性问题

Java JSF2.0初学者在bean中遇到参数和属性问题,java,jsf-2,Java,Jsf 2,今天晚上,我第一次开始使用JSF2.0,我成功地拼凑了一个托管bean,它返回一个电影列表,以及一个xhtml页面,该页面能够显示从托管bean返回的电影表 接着,我尝试在datatable中添加一个链接,以创建一个单独的xhtml页面,该页面只显示单个电影的细节。但在新的xhtml页面中使用FilmBean时,我似乎遇到了问题 以下是主清单xhtml页面中的代码: Facelet标题 标题 情节#{film.Plot} 下面是支持此页面的托管bean的代码: @ManagedBean

今天晚上,我第一次开始使用JSF2.0,我成功地拼凑了一个托管bean,它返回一个电影列表,以及一个xhtml页面,该页面能够显示从托管bean返回的电影表

接着,我尝试在datatable中添加一个链接,以创建一个单独的xhtml页面,该页面只显示单个电影的细节。但在新的xhtml页面中使用FilmBean时,我似乎遇到了问题

以下是主清单xhtml页面中的代码:


Facelet标题
标题
情节#{film.Plot}
下面是支持此页面的托管bean的代码:

@ManagedBean(name=“filmResourceBean”)
@会议范围
公共类FilmResource实现可序列化{
公共列表getAllFilms(){
//这只是返回电影的基本列表,这里不需要它来节省空间。。。
}
公共电影getFilm(字符串id){
//这只是返回一个与给定id匹配的胶片对象,同样是为了节省不需要的空间
}
}
现在,我尝试重新创建的想法是,当用户按下主列表xhtml页面中的表中的链接时,他们被重定向到一个新的xhtml页面,该页面应该获得应该通过托管bean中的getFilm(String id)方法显示的胶片

下面是我目前所拥有的,它只打印出film对象的基本toString(),例如:org.jmcdonnell.mavenproject1。Film@34c3eb7c

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Facelet Title</title>
    </h:head >
    <h:body >
        <h:outputText value="#{filmResourceBean.getFilm(id)}"></h:outputText>
    </h:body>
</html>

Facelet标题

我想在这里简单地向初学者展示的是电影的标题,我尝试了
{filmResourceBean.getFilm(id).title}
{filmResourceBean.getFilm(id)}.title
的不同组合,但它们都不起作用,而且对于JSF来说,我不太确定该去哪里看,或者我在找什么。我在网上找到的教程也没有告诉我做这件事的方法,或者至少没有告诉我我找到了什么。有人能给我指出正确的方向吗?

如果几乎正确,您需要使用
{filmResourceBean.getFilm(id.title}
,但您的问题是参数
id
。使用
f:param
打开视图时,它会将该参数作为GET参数传递。要在目标视图中使用它,您需要使用
param['key']
,因此在您的情况下,最终代码应该是:

#{filmResourceBean.getFilm(param['id']).title}

谢谢kocko,我应该这么做的。
#{filmResourceBean.getFilm(param['id']).title}