Oracle MAF: отразить значение в inputText на основе множественного выбора selectOneChoice

Я создал три компонента selectOneChoice в calc.amx, основываясь на изменениях значений, он будет выполнять вычисления и давать вам некоторый результат. Мне нужно добавить его на ту же страницу amx, что и inputText (нередактируемый текст). Ниже приведены мои попытки,


Calc.amx:

Все это selectOneChoice будет иметь valueChangeListener для установки значения в bean-компонент,

<amx:selectOneChoice value="valueOne" label="Value One" id="soc1" valueChangeListener="#{calcBean.setValueOne}">
    <amx:selectItems value="valueOne" id="si1"/>
</amx:selectOneChoice>

<amx:selectOneChoice value="valueTwo" label="Value Two" id="soc2" valueChangeListener="#{calcBean.setValueTwo}">
    <amx:selectItems value="valueTwo" id="si2"/>
</amx:selectOneChoice>

<amx:selectOneChoice value="valueThree" label="Value Three" id="soc3" valueChangeListener="#{calcBean.setValueThree}">
    <amx:selectItems value="valueThree" id="si3"/>
</amx:selectOneChoice>
<amx:inputText value="#{bindings.grantTotal.inputValue}" label="#{bindings.grantTotal.hints.label}" id="it4"/>

CalcBean.java:

private String firstValue;
private String secondValue;
private String thirdValue;
private String grantTotal;


public void setFirstValue(String firstValue) {
    String oldFirstValue = this.firstValue;
    this.firstValue = firstValue;
    propertyChangeSupport.firePropertyChange("firstValue", oldFirstValue, firstValue);
}

public String getFirstValue() {
    return firstValue;
}

public void setSecondValue(String secondValue) {
    String oldSecondValue = this.secondValue;
    this.secondValue = secondValue;
    propertyChangeSupport.firePropertyChange("secondValue", oldSecondValue, secondValue);
}

public String getSecondValue() {
    return secondValue;
}

public void setThirdValue(String thirdValue) {
    String oldThirdValue = this.thirdValue;
    this.thirdValue = thirdValue;
    propertyChangeSupport.firePropertyChange("thirdValue", oldThirdValue, thirdValue);
}

public String getThirdValue() {
    return thirdValue;
}

public void setGrantTotal(String grantTotal) {
    String oldGrantTotal = this.grantTotal;
    this.grantTotal = grantTotal;
    propertyChangeSupport.firePropertyChange("grantTotal", oldGrantTotal, grantTotal);
}

public String getGrantTotal() {
    return grantTotal;
}


public void addPropertyChangeListener(PropertyChangeListener l) {
    propertyChangeSupport.addPropertyChangeListener(l);
}

public void removePropertyChangeListener(PropertyChangeListener l) {
    propertyChangeSupport.removePropertyChangeListener(l);
}

public void setValueOne(ValueChangeEvent valueChangeEvent) {
    firstValue = valueChangeEvent.getNewValue().toString();
    doCalc(firstValue,secondValue,thirdValue);
}

public void setValueTwo(ValueChangeEvent valueChangeEvent) {
    secondValue = valueChangeEvent.getNewValue().toString();
    doCalc(firstValue,secondValue,thirdValue);
}

public void setValueThree(ValueChangeEvent valueChangeEvent) {
    thirdValue = valueChangeEvent.getNewValue().toString();
    doCalc(firstValue,secondValue,thirdValue);
}

public void doCalc(String firstValue, String secondValue, String thirdValue){
    if(firstValue!=null&&secondValue!=null&&thirdValue!=null){
        System.out.println(firstValue+secondValue+thirdValue);
        grantTotal = firstValue+secondValue+thirdValue;
        setGrantTotal(grantTotal);
        System.out.println("grantTotal : "+grantTotal);
    } else {
        grantTotal = "No Value";
        setGrantTotal(grantTotal);
        System.out.println("grantTotal : "+grantTotal);
    }

}

Таким образом, я могу выполнить расчет на основе выбора selectOneChoice, а также распечатать вычисленный вывод в операторе sop.

Теперь, как я могу отразить значение grantTotal на той же странице amx в inputText на основе каждого выбора selectOneChoice?


person Wanna Coffee    schedule 30.10.2015    source источник
comment
Почему ваши атрибуты статичны? Вы можете выставить свой CalcBean как DataControl и использовать grandTotal на своих страницах (если, конечно, у него есть правильный геттер)   -  person User404    schedule 02.11.2015
comment
Я только что создал временную переменную 'grantTotal'. Я пытаюсь установить значение grantTotal в метод установки класса pojo, где я вставлю полный объект в БД.   -  person Wanna Coffee    schedule 02.11.2015
comment
В соответствии с просьбой я создал пример проекта, и выше приведен обновленный код. но все же значение не отражается на странице amx.   -  person Wanna Coffee    schedule 02.11.2015


Ответы (1)


Является ли grandTotal значением атрибута в ваших привязках? Если это так, вы можете легко установить значение с помощью EL.


Пример:

 int myValue = 123; 
 AdfmfJavaUtilities.setELValue("#{bindings.GrandTotal.inputValue}", myValue); 

Нажмите здесь для просмотра документации Oracle относительно setELValue().

person User404    schedule 03.11.2015
comment
Спасибо., мне помогает. :) - person Wanna Coffee; 03.11.2015