Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Редактирование содержимого формы аяксом реализуемо?

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Задача: сделать форму с меняющимися внутренними компонентами по требованию.

Пример кода:

<h:form>
<ul>
<li><h:button value="buttonOne"><f:ajax event="change"/></h:button></li>
<li><h:button value="buttonTwo"><f:ajax event="change"/></h:button></li>
<li><h:button value="buttonThree"><f:ajax event="change"/></h:button></li>
</ul>
<h:form class="polymorphic"> some xhtml tags</h:form>
</h:form>

Имеем 3 кнопки, 1 форму, нужно что б при нажатии на button менялось содержимое form class="polymorphic", под содержимым подразумевается совокупность xhtml тегов (например для buttonOne 3 inputText,для buttonTwo 4 inputText, для buttonThree 5 inputText).
Данная задача реализуется через ajax? Если да, подскажите реализацию.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Можно сделать заготовки под 3 кнопки, с атрибутом rendered="boolean", на кнопку повесить:
<p:ajax event="button1″ listener="#{buttonsBean.renderTrue(метод, который меняет значение, присваемое выше атрибуту rendered на тру или фалс)}" update=":form:updatingForm"/> Форме, которую обновляем надо айди прописать, чтоб именно ее вызывать

о, кстати, можно еще попробовать, сделать метод в классе, который принимает 1 или 2 или 3, там в зависимости от значения присваивать стринге:
<h:inputtext value="3 inputText"/> и т.д. А в форме просто выводить значение стринги: в виде:
<h:form id="updateForm" class="polymorphic"> #{ClassName.string}</h:form>
Тогда можно без рендера обойтись.

Щось мені здається, що все це зведеться до цього:

$(document).on('change', function() {
  $('.polymorphic').load('url_for_html_insert_generator');
});

Впервые вижу эти префиксы «h:», как и JSF, в общем-то... Но все же осмелюсь предположить — почему f:ajax event="change", а не f:ajax event="click"?

Как я понял, в JSF все реализуется таким макаром — через встроенные аттрибуты на разметке? А каковы преимущества такого подхода и все ли на Java проектах так делается О_о?

JSF реализует компонентное создание веб-страниц, что позволяет обновлять компоненты AJAX-ом без полной перегрузки страницы.
Насчет атрибута, точно не скажу, AJAX изучил не досконально, вот задал вопрос тут)

что позволяет обновлять компоненты AJAX-ом без полной перегрузки страницы
ну так дело тут в аяксе — это его задача, он для этого создан.
это не ответ. можно на логом яваскрипте и без JFS сделать то же самом
каковы преимущества именно использования JFS?

Підписатись на коментарі