Компонент Seam reRender частично; reRender через именование контейнеров - PullRequest
0 голосов
/ 21 мая 2010

Я использую шов для разработки простого веб-приложения. Использование a4j commandButton во многих местах со свойством reRender = "componentName"

componentName в большинстве мест является панелью вывода a4j

Который всегда работал, пока я не использовал шаблон. с включением двух разных взглядов. reRender, примененный ко всему виду, работает, но reRender, примененный к внутреннему компоненту, не работает.

Та же проблема с правилами страницы, все определенные мной действия больше не работают.

Это проблема с Seam, кто-нибудь испытывал это?

<a4j:outputPanel id="panel1">
             <h:form>
                    <div class="section">
                                      // whatever code
                                </div>

 <a4j:commandButton id="button1" value="Add" action="#{bean1.action()}" reRender="panel1"/>
 <h:commandButton id="reset" value="Reset" action="#{bean1.reset}"/>
 </h:form>

</a4j:outputPanel>

1 Ответ

1 голос
/ 21 мая 2010

Для того, чтобы reRender в именованных контейнерах вам нужно что-то вроде reRender=":myComponent" - двоеточие в начале обозначает абсолютное местоположение компонента в дереве компонентов. В противном случае все идентификаторы реализуются относительно текущего контейнера именования, который в этом случае будет формой.

См. UIComponent.findComponent(..)

...