почему композитный компост не вызывает в - PullRequest
0 голосов
/ 28 мая 2011

У меня есть компост, который имеет атрибут метода-подписи. Его можно активировать, но если я добавлю его в <h:datatable> <h:column/> и активирую этот компонент, он не будет работать.

Когда я просто обновляю эту страницу снова или помещаю ее в другое место, она может быть успешно запущена. Буду признателен, если кто-нибудь скажет мне, почему!

это мой код

<h:column>
                    <f:facet name="header">op:</f:facet>
                    <h:commandLink value="alter" action="#{userSession.alterAction}"
                        rendered="#{userSession.user.power.powerID == 1}">
                        <f:param name="beanId" value="#{book.bookID}" />
                        <f:param name="class" value="#{BookBean}" />
                    </h:commandLink>
                    <h:commandLink action="#{userSession.detailAction}" value="detail"
                                   rendered="#{userSession.user != null}">
                        <f:param name="beanId" value="#{book.bookID}" />
                        <f:param name="class" value="#{BookBean}" />
                    </h:commandLink>
                    <h:commandLink action="#{bookAction.bookDelAction}"
                        onclick="return confirm('are you sure?')" value="delete"
                        rendered="#{userSession.user.power.powerID == 1}">
                        <f:param name="beanId" value="#{book.bookID}" />
                    </h:commandLink>
                </h:column>

this manageredBean # {bookAction} является requestScope, когда я щелкаю одну из этих операций, как и удаление, оно не работает вообще. но если я уберу командную ссылку 'delete' из <h:datatabel/> .it, она может успешно вызвать метод поддержки. это так расстроено!

кто может сказать мне, может ли <h:datatable/> экранировать .i найденный, если я помещу этот код в <h:form/> .Это тоже может вызвать! Cound Вы можете сказать мне причину!

1 Ответ

1 голос
/ 29 мая 2011

Вам необходимо сохранить точно такую ​​же модель данных (т. Е. Ту, на которую вы ссылаетесь атрибутом value <h:dataTable>) во время запроса отправки формы, как это было во время запроса отображения начальнойформа.Симптомы указывают на то, что вы используете bean-объект в области запросов и что загрузка модели данных основана на некотором параметре запроса, который отсутствует во время отправки формы и / или загрузка не выполняется во время (post) построения bean-компонента.

Помещение компонента в область просмотра и / или перестановка логики загрузки данных должны исправить это.

...