слушатель valuehchange, ajax - PullRequest
       23

слушатель valuehchange, ajax

0 голосов
/ 27 августа 2010

Я использую страницу JSF в среде портала. Если я использую valueChangeListener, метод не вызывается в компоненте поддержки, если я не использую onclick="submit()". Это отправляет мою страницу, которую я не хочу. То же самое в случае actionListner.

Кроме того, если я использую ajaxRefreshSubmit, вся моя страница будет отправлена, а не отправлена ​​указанная часть, в которой используется ajaxRefreshSubmit.

Почему это поведение? Это потому, что мы используем его в среде портала или мы что-то упустили в файлах конфигурации?

Ответы [ 2 ]

1 голос
/ 27 августа 2010

valueChangeListener действительно работает только при отправке формы на сервер. Это действительно одно из основных заблуждений новичка в JSF - думать, что оно работает на стороне клиента. Он не является частью кода HTML или JavaScript, который запускается в веб-браузере. Это часть кода Java / JSF, которая работает на веб-сервере. Таким образом, клиент должен как-то отправить запрос от веб-браузера на веб-сервер. Отправка формы является одним из способов.

Что касается остатка, мне нечего сказать о ajaxRefreshSubmit, поскольку это относится к библиотеке компонентов IBM, которую я не использую (и также не могу, потому что она не является ни открытым, ни свободно доступным). Если вы не получите больше отклика здесь, в Stackoverflow, то лучше всего разместить вопрос на их собственном форуме по адресу developerworks . Только не так активно и качественно, как здесь.

0 голосов
/ 19 апреля 2011

                        <h:form id="toilclaimform">
                        <h:panelGroup id="container">
                            <!-- Read only version -->

                        <hx:commandExButton type="button" id="testButton2" value="Submit" styleClass="hideRefreshToil" onmousedown="$.resourceManUtilities.formRefreshCookie()" >
                                    <hx:behavior event="onclick" id="behavior3" behaviorAction="get" targetAction="container" ></hx:behavior>
                        </hx:commandExButton>


                                <hx:commandExButton onmousedown="runToilVal()" onmouseup="$.resourceManUtilities.formSubmitCookie()" type="submit" id="testButton" value="Submit" styleClass="rmButtons" action="#{toilClaimBean.submit}">
                                    <hx:behavior event="onclick" id="behavior2" behaviorAction="get" targetAction="container" ></hx:behavior>
                                </hx:commandExButton>


                    </h:panelGroup>


                    </h:panelGroup>
                    <hx:ajaxRefreshSubmit id="ajaxRefreshRequest1" onstart="$.resourceManUtilities.ajaxLoadingStarting('form')" oncomplete="$.resourceManUtilities.ajaxFormSubmit('hideRefreshToilList')" target="container"></hx:ajaxRefreshSubmit>
                </h:form>


Когда вы используете эту библиотеку, вы больше не используете стандартные кнопки команд, вместо этого вы используете кнопку команд hx, в приведенном выше примере есть пример,Использование этой кнопки гарантирует, что вы не получите полное обновление pagr, и обновит нужный портлет.

Cheers

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...