h:graphicImage не ререндерится

У меня есть файл jsf, в котором у меня есть selectOneMenu и h: graphicImage. Теперь проблема заключается в том, что я отправляю запрос onchange через selectOneMenu и хочу повторно визуализировать h: graphicImage и хочу показать и скрыть логическое значение в действии bean. Но не работает должным образом. На самом деле, сначала я очень тщательно изучаю, что когда я отправляю действие через selectOneMenu, логическое значение правильно устанавливается в bean-компоненте, но не правильно устанавливает значение reRender. Если я обновляю страницу, она работает правильно. Любой, кто я могу решить это, если я хочу обновить страницу на selectOneMenu actionlistener, а затем как я обновляю страницу. Мой код здесь для более подробной информации

    <h:selectOneMenu id="stageListID" value="#{mnpBean.stageList.defaultValue}" >
<f:selectItems  value="#{mnpBean.stageList.values}"/>
<a4j:support event="onchange" actionListener="#{mnpAction.onStageListChangeAction}" reRender="addBtn1" oncomplete="resetViewConfigs();"/>
</h:selectOneMenu>

код графического изображения

<h:graphicImage id="addBtn1"  url=""  rendered="#{mnpBean.showAddButton}" style="cursor:pointer">
<a4j:support id="addRowBtn1" event="onclick"  actionListener="#{mnpAction.addMultiNoRingFence}"/>
</h:graphicImage> 

бин-код здесь

public void onStageListChangeAction(ActionEvent ae) {
mnpBean = getMNPBean();
if ("10".equals(mnpBean.getStatusList().getDefaultValue()) &&       "010".equals(mnpBean.getStageList().getDefaultValue())) {
 mnpBean.setShowAddButton(false);         
 }else{
 mnpBean.setShowAddButton(true);         
 }

}

Любая помощь в этом ценим


person seeker    schedule 18.01.2013    source источник
comment
@BalusC, пожалуйста, предложите решение здесь   -  person seeker    schedule 18.01.2013
comment
@nickname комментарии-ответы не работают, если человек, о котором идет речь, не отредактировал/не прокомментировал сообщение заранее. Просто подождите, пока он не увидит вопрос :)   -  person BalusC    schedule 18.01.2013
comment
@BalusC хорошо, теперь понял :) в любом случае спасибо и за это :)   -  person seeker    schedule 18.01.2013


Ответы (1)


Что ты должен делать :

  1. Заверните <h:graphicImage/> в такой контейнер, как <h:panelGrid/>

    <a4j:outputPanel ajaxRendered="true" layout="none" id="imageContainer">
     <h:graphicImage id="addBtn1"  url=""  rendered="#{mnpBean.showAddButton}" style="cursor:pointer">
        <a4j:support id="addRowBtn1" event="onclick"  actionListener="#{mnpAction.addMultiNoRingFence}"/>
     </h:graphicImage> 
    <a4j:outputPanel/>
    
  2. Используйте идентификатор контейнера в качестве цели reRender

    <a4j:support event="onchange" actionListener="#{mnpAction.onStageListChangeAction}" reRender="imageContainer" oncomplete="resetViewConfigs();"/>
    

По причине возникновения проблемы см. объяснение здесь

person kolossus    schedule 18.01.2013