我有一個h:數據表可顯示員工數據。 我希望用戶點擊時,員工姓名導航到新的網頁的URL看起來像JSF書籤問題
employees?id=<some id>
我試圖JSP EL與JSF EL相結合,但沒有出路。
我有一個h:數據表可顯示員工數據。 我希望用戶點擊時,員工姓名導航到新的網頁的URL看起來像JSF書籤問題
employees?id=<some id>
我試圖JSP EL與JSF EL相結合,但沒有出路。
如果您還沒有使用JSF 2.0,那麼您可以使用h:outputLink
結合<f:param>
,#{param}
和faces-config.xml
。
基本表例如:
<h:dataTable value="#{bean.employees}" var="employee">
<h:column>
<h:outputLink value="employees.jsf">
<f:param name="id" value="#{employee.id}" />
<h:outputText value="View employee #{employee.name}" />
</h:outputLink>
</h:column>
</h:dataTable>
基本faces-config.xml
例如:
<managed-bean>
<managed-bean-name>employeeManager</managed-bean-name>
<managed-bean-class>com.example.EmployeeManager</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>id</property-name>
<value>#{param.id}</value>
</managed-property>
</managed-bean>
基本com.example.EmployeeManager
例如:
public class EmployeeManager {
private Long id;
private Employee employee;
@PostConstruct
public void init() {
this.employee = employeeDAO.find(this.id);
}
}
的@PostConstuct
註解的方法會之後調用豆建設和所有的注入和管理財產設置。有關更多信息和示例,另請參閱this article。
有兩種可能的解決方案,我能想到的:
如果它可以切換到Java EE 6服務器,我強烈建議選擇1號。
編輯:有2個標籤在JSF 2中添加的:<h:link />
和<h:button />
。這些使用GET而不是POST。另外,看看<f:viewparam />
。在此之上,還有很多其他精彩添加在JSF 2.簡要概述,請參閱this article。
那麼,使用JSF2會解決這個問題,因爲我切換到仍然面臨的問題後,害怕嗎? – 2010-01-15 13:47:03
你不一定需要JSF2。這沒有意義。 – BalusC 2010-01-15 14:46:56
你不需要* JSF 2。您可以修改您的視圖處理程序以接受接受查詢參數。但是,這是一個很不方便的做法。您也可以使用輸出鏈接。但是,這規避了JSF導航。 – 2010-01-15 15:00:53
您的博客看起來不錯,謝謝:) 是你對@PostConstruct的提示正確的,我已經reialized這說明(在我的博客http://m-hewedy.blogspot.com/2010/01/列出它呼叫會話豆上的JSF-managed.html) 但這裏有一個問題,如果我需要把employee對象在使用H會話範圍:outputLink的? – 2010-01-22 12:27:29
只是要'EmployeeManager'會話作用域bean。 – BalusC 2010-01-22 12:32:03