2010-12-15 34 views
0

我目前陷入了一個使用JSP很容易解決的問題。無論如何,我有一個生成的頁面,其中有一個ID。現在,JSF必須在運行時讀取此值(例如,加載頁面),並使用此ID對數據庫執行查詢並顯示結果。使用JSP,這將是一件不容易的事情,但對於JSF,我不知道如何從外部操作後臺bean的數據。有任何想法嗎?使用JSF在頁面中顯示的閱讀值

Thx提前, 克里斯

+1

這是什麼ID爲?這是如何提供的?硬編碼?請求參數? – BalusC 2010-12-15 14:08:44

+0

該ID用於獲取連接到ID的DB中的條目。該ID是硬編碼的。 – methical 2010-12-15 14:58:52

+0

你可以證明你是如何在JSP中做到的嗎?我們可以嘗試在JSF – mvg 2010-12-16 05:35:08

回答

1

這真是超出了我這個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 
    } 

    // ... 
} 
+0

謝謝你的提示,我認爲這將做到這一點。除此之外的原因是,CMS生成靜態頁面。作者可以在CMS中選擇一個數據庫,ID會被渲染到頁面中,並且由於一些愚蠢的技術決定,我將不得不堅持JSF試圖擺脫如何正確執行此操作。我不會在這裏使用JSF,但我只是一個親戚。 – methical 2010-12-17 10:04:20

0

HM,做我理解正確的話,你要讀出Java代碼中獲取參數的?

例如網址是http://www.example.com/?foo=bar

那麼你就可以讀出Java代碼的價值在這個片段中

FacesContext context = FacesContext.getCurrentInstance(); 
String theValue = context.getExternalContext().getRequestParameterMap().get("foo"); 
+0

沒有它的不是一個獲取參數它呈現在頁面 – methical 2010-12-17 10:01:23