ADF

时间:2017-09-20 19:14:40

标签: action actionlistener oracle-adf jdeveloper

我们有业务需要在每个JSF页面中收集特定的绑定。我们在重写的ViewHandlerWrapper类

中执行此操作

我在renderView方法中使用下面的代码来获取每个RichInputText的整个表达式值属性,它对我来说很好用

ValueExpression valExp = Inputcomponent.getValueExpression("value");
String ExpressionString = valExp.getExpressionString();

输出为:#{binding.EmployeeId.inputValue}

当我对RichButtin做同样的事情时,我得到如下的空值:

ValueExpression valExp = Btncomponent.getValueExpression("actionlistener");
String ExpressionString = valExp.getExpressionString();

我最后的代码安静有什么不对?

1 个答案:

答案 0 :(得分:0)

获取RichInputText的 ValueExpression 是有效的,因为顾名思义,它计算为一个值,该值可能是也可能不是EL表达式,更不用说了方法

另一方面,RichButton实际上不需要评估某些东西;相反,它的目的是调用行为(即一个方法),你需要一个 MethodExpression - 尽管在这种情况下,我们得到的最接近的是 MethodBinding

幸运的是,UIXCommand是RichButton的一个超类,提供了两种方法,您可以从中获取动作侦听器:

  1. public final MethodBinding getActionListener()

    从返回的MethodBinding中,您可以调用getExpressionString()以便获得所需内容 - 例如#{binding.bean.actionListenerMethod}之类的actionListener EL字符串。

  2. public final ActionListener[] getActionListeners()

    可能值得一提,尽管在您的用例中没有太多优点。它只返回您可以手动处理事件的侦听器。