【问题标题】:Context Initialization Parameters for Managed Bean托管 Bean 的上下文初始化参数
【发布时间】:2013-01-06 04:22:54
【问题描述】:

背景

托管 bean 必须通过其 web.xml 文件配置参数。 web.xml 文件定义了在 JDeveloper (11.1.2.3) 中配置的上下文初始化参数,如下所示:

reporting.server.protocol的定义来源如下:

  <context-param>
    <description>Defines the data transport mechanism to ret...</description>
    <param-name>reporting.server.protocol</param-name>
    <param-value>http</param-value>
  </context-param>

bean 公开了reportServerProtocol 的公共访问器方法。

bean 的来源类似于:

@ManagedBean
@RequestScoped
public class OracleReportBean extends ReportBean {

  @ManagedProperty("#{initParam['reporting.server.protocol']}")
  private String reportServerProtocol = URLReportImpl.DEFAULT_PROTOCOL;

  // ...
}

问题

我想使用上下文初始化参数来初始化 bean,而不是通过FacesContext。在adfc-config.xml(注意:不是faces-confg.xml)中,一些示例显示了对initParam 的引用:

<managed-bean>
  <managed-bean-name>reportBean</managed-bean-name>
  <managed-bean-class>ca.corp.report.view.OracleReportBean</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
  <managed-property>
    <property-name>reportServerProtocol</property-name>
    <property-class>java.lang.String</property-class>
    <value>#{initParam['reporting.server.protocol']}</value>
  </managed-property>
...
</managed-bean>

关键行是值元素#{initParam['reporting.server.protocol']}。但是,JDeveloper 显示该行不正确。也就是说,initParam 上下文在 adfc-confing.xml 中不可用。

错误是:“EL 令牌initParam 未知。”

问题

使用EL,如何使用上下文初始化参数在 ADFc 中以声明方式配置托管 bean?

相关链接

【问题讨论】:

    标签: jsf-2 el oracle-adf jdeveloper adfc-config


    【解决方案1】:

    JDeveloper 中的一个错误导致显示错误:

    但是,即使 IDE 显示错误,代码也会按预期执行。

    【讨论】:

      【解决方案2】:

      在 ui 层你可以试试这样的:

      <c:set target="${BeanName}" property="PropertyName" value="${true}"/>
      

      【讨论】:

        猜你喜欢
        • 2014-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-08
        • 1970-01-01
        • 1970-01-01
        • 2014-06-12
        相关资源
        最近更新 更多