JSP/RichaFaces: h:selectOneMenu и динамическое обновление элементов страницы
От: artgonch1  
Дата: 21.06.12 04:22
Оценка:
Здравствуйте.

Я новичок в RichaFaces. Возникла такая проблема:
1. Есть JSP:

<f:view>
    <a4j:form>
    ....
    <h:selectOneMenu style="width:100px" value="#{userSessionBean.simpleDictPreffix}" id="dict-preffix"
                     valueChangeListener="#{userSessionBean.dictPreffixListValueChanged}">
        <f:selectItems value="#{applicationData.searchList}"/>
        <a4j:support event="onchange" ajaxSingle="true" action="#{userSessionBean.changeDictionaryAction}"
                     reRender="btnPanel"/>
    </h:selectOneMenu>
    ....
    <a4j:outputPanel rendered="#{userSessionBean.showDictBtnVisible}" id="btnPanel">
        <a4j:commandButton value="..." title="#{header_var.dict_btn_tip}"
                           action="#{userSessionBean.showDictAction}"
                           reRender="mpViewSearchValues"
                           rendered="#{userSessionBean.showDictBtnVisible}"
                           id="showDictBtn"/>
    </a4j:outputPanel>
</a4j:form>
</f:view>


2. Код обработчика события onchange компонента support:

public String changeDictionaryAction() {
            ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();

            List<SearchItemDescriptor> searchItemList = (List<SearchItemDescriptor>) ec.getApplicationMap().get("search-list");

            for (SearchItemDescriptor sid : searchItemList) {
                String s = sid.getPreffix();

                if (s.equals(simpleDictPreffix) == true) {
                    if (sid.getMenu() != null) {
                        showDictBtnVisible = true;

                        return null;
                    }
                }
            }

            showDictBtnVisible = false;

            return null;
        }


Проблема в том, что когда свойство showDictBtnVisible принимает значение true, обновление страницы не происходит и кнопка не появляется.

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

Версия RichFaces 3.3.2.

Заранее спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.