我目前陷入了一個使用JSP很容易解決的問題。無論如何,我有一個生成的頁面,其中有一個ID。現在,JSF必須在運行時讀取此值(例如,加載頁面),並使用此ID對數據庫執行查詢並顯示結果。使用JSP,這將是一件不容易的事情,但對於JSF,我不知道如何從外部操作後臺bean的數據。有任何想法嗎?使用JSF在頁面中顯示的閱讀值
Thx提前, 克里斯
我目前陷入了一個使用JSP很容易解決的問題。無論如何,我有一個生成的頁面,其中有一個ID。現在,JSF必須在運行時讀取此值(例如,加載頁面),並使用此ID對數據庫執行查詢並顯示結果。使用JSP,這將是一件不容易的事情,但對於JSF,我不知道如何從外部操作後臺bean的數據。有任何想法嗎?使用JSF在頁面中顯示的閱讀值
Thx提前, 克里斯
這真是超出了我這個ID在觀察側硬編碼,我寧願做它的一部分某些HTTP請求(URI,參數等)或者只是在模型中執行它,但是ala。
您可以使用JSTLc:set
從視圖中設置一個bean屬性,您可以使用其setter方法或f:view beforePhase
在渲染響應上執行一些東西。
<c:set scope="request" target="#{bean}" property="id" value="123" />
<f:view beforePhase="#{bean.onload}">
...
</f:view>
與
public class Bean {
private String id; // +getter+setter
public void onload(PhaseEvent event) {
// Value of id is available here.
System.out.println(id); // 123
}
// ...
}
謝謝你的提示,我認爲這將做到這一點。除此之外的原因是,CMS生成靜態頁面。作者可以在CMS中選擇一個數據庫,ID會被渲染到頁面中,並且由於一些愚蠢的技術決定,我將不得不堅持JSF試圖擺脫如何正確執行此操作。我不會在這裏使用JSF,但我只是一個親戚。 – methical 2010-12-17 10:04:20
HM,做我理解正確的話,你要讀出Java代碼中獲取參數的?
例如網址是http://www.example.com/?foo=bar
那麼你就可以讀出Java代碼的價值在這個片段中
FacesContext context = FacesContext.getCurrentInstance();
String theValue = context.getExternalContext().getRequestParameterMap().get("foo");
沒有它的不是一個獲取參數它呈現在頁面 – methical 2010-12-17 10:01:23
這是什麼ID爲?這是如何提供的?硬編碼?請求參數? – BalusC 2010-12-15 14:08:44
該ID用於獲取連接到ID的DB中的條目。該ID是硬編碼的。 – methical 2010-12-15 14:58:52
你可以證明你是如何在JSP中做到的嗎?我們可以嘗試在JSF – mvg 2010-12-16 05:35:08