JSF - 变量中的托管bean?

时间:2010-03-22 08:40:06

标签: java jsf

奇怪的问题,但我需要找到答案。

有什么办法可以在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 个答案:

答案 0 :(得分:2)

为什么你没有第四个bean具有所有其他bean的属性,只是在给定文档类型的情况下调用相关方法?

即。 DocumentBean.save()将调用BillDocument.save()或OrderDocument.save()或......等。

而不是尝试在JSF页面中执行此操作。

答案 1 :(得分:1)

为什么没有一个超类,比如说Documentsave方法,并将IF语句放在这个方法中。

在JSF页面中,使用类似:

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

在创建新文档时填充此变量,然后在保存方法中使用它