JSF - 托管bean的变量?
问题描述:
奇怪的问题,但我需要找到答案。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,将在这个按钮中使用?
谢谢你的回复!
答
为什么你没有第四个拥有所有其他bean属性的bean,只是调用给定文档类型的相关方法?
即DocumentBean.save()将调用BillDocument.save()或OrderDocument.save()或...等
而不是试图做到这一点在你的JSF页面。
答
为什么不能有一个超类,比如说Document
有save
方法,并把IF
语句放在这个方法中。
在JSF页面,使用类似:
<h:inputHidden id="docType" value="#{document.documentType}"/>
创建新文档时填充这个变量,然后用它的保存方法