2010-03-22 130 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}"/> 

创建新文档时填充这个变量,然后用它的保存方法