Как установить значение элемента управления icefaces inputTextarea - PullRequest
1 голос
/ 28 февраля 2012

Я использую Icefaces 1.8.2 и ice:inputTextarea элемент управления, и я не могу понять, почему значение не устанавливается здесь:

.jsp

<ice:inputTextarea binding="#{easp$RecordSearch.repairRemark}" id="repairRemark"
  partialSubmit="true" style="height:40px; width:100%;" />

.java

//bean
private HtmlInputTextarea repairRemark = new HtmlInputTextarea();
public HtmlInputTextarea getRepairRemark() {
    return repairRemark;
}
public void setRepairRemark(HtmlInputTextarea hit) {
    this.repairRemark = hit;
}

....
public String button3_action() {
    ...

    //code that sets value
    String myVal = "new value";
    this.repairRemark.setValue(myVal);

    ...
    return null;
}

Код, который устанавливает значение, является частью события нажатия кнопки, которое, как я знаю, запускается, потому что я устанавливаю несколько других элементов управления Icefaces, и все остальные сеттеры работают, кроме этого. Я только что заметил, что на самом деле текст выглядит очень коротко, но мгновенно исчезает. Я проверил весь код на этой странице, и я почти уверен, что нет другого установщика, перезаписывающего его. Кто-нибудь знает, что здесь происходит?

Обновление:
Похоже, это не проблема, связанная с «фазой», так как это событие обрабатывается на этапе INVOKE_APPLICATION. Также обратите внимание, что у меня такая же проблема с jsf h:inputTextarea

1 Ответ

1 голос
/ 02 марта 2012

Я нашел причину и решение. Причиной были ice:commandButton s, которые инициировали это событие щелчка, были в столбце в ice:dataTable. У ice:dataTable был ice:rowSelector, который, казалось, вызывал дополнительный запрос к серверу при нажатии кнопки. Когда я удалил ice:rowSelector, проблема ушла.

Решением было добавить либо toggleOnClick="false", либо toggleOnInput="false" к ice:rowSelector. Я добавил оба, на всякий случай.

http://res.icesoft.org/docs/v1_8_2/tld/ice/rowSelector.html

Надеюсь, это поможет всем, кто сталкивается с этой проблемой.

...