托管Bean的上下文初始化参数

时间:2013-01-22 20:00:54

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

背景

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

enter image description here

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?

相关链接

2 个答案:

答案 0 :(得分:1)

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

JDeveloper Error

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

答案 1 :(得分:0)

在ui层你可以尝试这样的事情:

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