2010-03-22 176 views
1

奇怪的問題,但我需要找到答案。JSF - 託管bean的變量?

有什麼辦法,我可以在JSP中管理託管bean?我試着解釋一下,我想要做什麼:

想象一下,我有JSP頁面,例如,它被稱爲document.save.jsp。我有一些不同類型的各種文件。他們每個人都有自己的豆子。例如:BillDocument.java,OrderDocument.java和ReportDocument.java

我的jsp中的BillDocument.java是#{billdoc}
OrderDocument.java - >#{orddoc}
ReportDocument.java - >#{repdoc}

他們每個人都有save()方法。在我的JSP中,我想調用這個方法,但是我需要知道它是哪個文檔。在我的腦海裏這種結構是一樣的東西:

<% String currentBean = ""; 
if(document == BillDocument){ 
    currentBean = #{billdoc}; 
} 
if(document == OrderDocument){ 
    currentBean = #{orddoc}; 
} 
if(document = ReportDocument){ 
    currentBean = #{repdoc}; 
} 
%> 

然後,我與保存方法按鈕,可能是水木清華這樣的:

<h:commandButton action="currentbean.save"/> 

有什麼辦法,我在其中可以存儲數據關於bean,將在這個按鈕中使用?

謝謝你的回覆!

回答

2

爲什麼你沒有第四個擁有所有其他bean屬性的bean,只是調用給定文檔類型的相關方法?

即DocumentBean.save()將調用BillDocument.save()或OrderDocument.save()或...等

而不是試圖做到這一點在你的JSF頁面。

1

爲什麼不能有一個超類,比如說Documentsave方法,並把IF語句放在這個方法中。

在JSF頁面,使用類似:

<h:inputHidden id="docType" value="#{document.documentType}"/> 

創建新文檔時填充這個變量,然後用它的保存方法