【问题标题】:JSF - managed bean in variable?JSF - 变量中的托管bean?
【发布时间】:2010-03-22 08:40:05
【问题描述】:

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

有什么方法可以在 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的数据,这将在这个按钮中使用?

感谢您的回复!

【问题讨论】:

    标签: java jsf


    【解决方案1】:

    为什么没有第四个 bean,它具有所有其他 bean 的属性,并且只调用给定文档类型的相关方法?

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

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

    【讨论】:

      【解决方案2】:

      为什么不创建一个超类,比如Documentsave 方法,然后将IF 语句放在这个方法中。

      在 JSF 页面中,使用如下内容:

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

      新建文档时填充这个变量,然后在save方法中使用

      【讨论】:

        猜你喜欢
        • 2015-08-29
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        • 2017-06-10
        • 2016-07-09
        • 2012-10-13
        • 2011-07-10
        相关资源
        最近更新 更多