今天晚上我第一次開始使用JSF 2.0,並且我設法拼湊了一個託管bean,它返回一個電影列表和一個xhtml頁面它能夠顯示從託管bean返回的電影表格。JSF2.0來自bean的參數和屬性的初學問題
繼續之後,我試圖在數據表中添加一個鏈接,以創建一個單獨的xhtml頁面,該頁面只顯示單個電影的詳細信息。但我似乎無法在新的xhtml頁面中使用電影bean。
下面是主要的上市XHTML頁面代碼:
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<h:dataTable value="#{filmResourceBean.allFilms}" var="film">
<h:column><f:facet name="header">Title</f:facet>
<h:commandLink value="#{film.title}" action="film.xhtml" />
<f:param name="id" value="#{film.imdbId}" />
</h:column>
<h:column><f:facet name="header">Plot</f:facet>#{film.plot}</h:column>
</h:dataTable>
</h:form>
</h:body>
這裏是從託管bean的代碼實現此頁:
@ManagedBean(name="filmResourceBean")
@SessionScoped
public class FilmResource implements Serializable {
public List<Film> getAllFilms() {
// This just returns a basic list of films, its not needed here to save space...
}
public Film getFilm(String id) {
// THis just returns a film object that matches the given id, again to save space its not needed
}
}
現在我嘗試重新創建的想法是當用戶按下主列表x中找到的表中的鏈接時html頁面,它們被重定向到一個新的xhtml頁面,該頁面應該通過託管bean中的getFilm(String id)方法獲得應該顯示的Film。
這裏簡直就是我有什麼的那一刻,只打印出的電影對象的基本的toString(),例如:[email protected]
<?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>
我想要什麼簡單地在這裏展示的是電影的標題,並且我嘗試了#{filmResourceBean.getFilm(id).title}
或#{filmResourceBean.getFilm(id)}.title
等不同的組合,但是他們都沒有工作,並且對JSF來說是新手,我不確定去哪裏看或什麼正在尋找。我在網上找到的教程沒有告訴我這樣做的方法,或者至少不是我已經發現的。有人能指引我走向正確的方向嗎?
感謝kocko,我應該在做。 –