如何在没有值更改侦听器的Oracle ADF中获取SelectOneRadio值

时间:2014-06-25 13:22:09

标签: java oracle oracle-adf selectoneradio

我想在Oracle ADF jsff中的SelectOneRadio中获取所选值。

问题是我不想将每次点击都引用到ValueChangeListener。

这会造成很多服务器负载。

有没有办法在单选按钮中选择值,并通过部分更新它来显示输出文本..

我尝试了多个博客,都指的是使用BackingBean。

提前致谢

2 个答案:

答案 0 :(得分:0)

ValueChangeListener的调用不应使服务器超载。

尝试

<af:selectOneRadio value="#{bean.aValue}" id="sor1" autoSubmit="true">
  <f:selectItem itemLabel="Option1" itemValue="1"/>
  <f:selectItem itemLabel="Option2" itemValue="2"/>
  <f:selectItem itemLabel="Option3" itemValue="3"/>
</af:selectOneRadio>
<af:outputText value="#{bean.aValue}" partialTriggers="sor1"/>

没有ValueChangeListener但仍在服务器上旅行。你无法避免这种情况。 ADF基于JSF,这是该技术的工作方式。

答案 1 :(得分:0)

您可以创建对该组件的绑定,并在绑定所在的同一方法中获取它的值。例如:

<af:selectOneRadio value="#{bindings.Deptno.inputValue}" label="Select Department"
                        required="true" shortDesc="#{bindings.Deptno.hints.tooltip}"
                        id="soc1" autoSubmit="true" binding="#{managedBeanName.selectOneRadio}>
      <f:selectItems value="#{bindings.Deptno.items}" id="si1"/>

然后bean应该是这样的:

import oracle.adf.view.rich.component.rich.input.RichSelectOneRadio

public class ManagedBeanName{
private RichSelectOneRadio radio;

//getters/setters for 'radio' here

public void printValue(){
System.out.println(radio.getValue());
}

每次想要打印/获取所选值时,最后一件事就是调用此方法。