powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос по jsf и primefaces
8 сообщений из 8, страница 1 из 1
вопрос по jsf и primefaces
    #39036239
olegeos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть страница с текстовыми полями ввода и две кнопки выполнения, одна обновляет пару полей, вторая сохраняет(обновляет) в базе данных значения со всех полей.
Проблема: при сохранении в базу не заносятся поля которые были вставлены по кнопке find. Остальные поля нормально сохраняются. Если на кнопке save добавить атрибут immediate="true" вставленные по кнопке поля будут сохраняться, но тогда обычные поля заполняемые руками не сохраняются(да это и не удивительно). Что интересно если заполнить их руками то тоже не сохраняются.(То есть неважно нажимал ты кнопку заполнить или вставил сам).
В отладке видно что при нажатии кнопки save методы get/set вызываются по два раза, первый со значениями, второй с нулями. Откуда берутся нули тоже неясно, поля текстовые, в сущности они тоже текстовые, значений по умолчанию нет.

Советы???!!!

Кода много поэтому приведу пример:
страница
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<h:form id="f1">

  <p:inputText id="inp1" value="#{CDIBean.entity.field1}" maxlenght="10"/>

  <h:panelGrid id="p1">
       <p:inputText id="inp2" value="#{CDIBean.entity.field2}" maxlenght="10"/>
  </h:panelGrid>

<p:commandButton value="save" type="submit" action="CDIBean.Save()" ajax="true"   >
<p:commandButton value="find" type="submit" action="CDIBean.Find()" ajax="true" update="f1:p1"  >
</h:form>


Упрощенно выглядит так
Код: java
1.
2.
3.
public String Save(){
entity = ejbDao.udpadate(entity);
}
...
Рейтинг: 0 / 0
вопрос по jsf и primefaces
    #39036240
olegeos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такое впечатление, что не проходит валидация для этих полей. Ко всем полям добавлены меседжи, но в них ничего не появляется.
...
Рейтинг: 0 / 0
вопрос по jsf и primefaces
    #39036249
olegeos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да сущность при открытии страницы уже заполнена.
Что-то непонятное происходит в момент сохранения??!!
...
Рейтинг: 0 / 0
вопрос по jsf и primefaces
    #39036286
olegeos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В дебаге показывает что в момент нажатия кнопки save в сущности уже стоят нули для нескольких полей.
...
Рейтинг: 0 / 0
вопрос по jsf и primefaces
    #39036333
olegeos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вызывать метод find внутри метода save перед непосредственным обновлением, то сохраняет, но теряется возможность ручного ввода. В общем костыль временный.
...
Рейтинг: 0 / 0
вопрос по jsf и primefaces
    #39037701
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В документации написано что нужно использовать actionListener а не action.

Пробуй такой конструкцией выполнять:
Код: xml
1.
2.
3.
4.
<h:commandLink action="#{testBean.showSomething}">
    <f:ajax render=":content" />
    Do Stuff
</h:commandLink>
...
Рейтинг: 0 / 0
вопрос по jsf и primefaces
    #39038143
olegeos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
использую командную кнопку из primefaces, но пробовал и стандартную. Разные варианты в том числе и тот что предлагаете.
Проблема в том что на момент нажатия кнопки (в дебагге видно) в полях сущности уже стоят нули(именно нули а не null) хотя это стринговые переменные!!!
Если бы у них тип в сущности был int или integer я бы это как-то понял, но....
Мое мнение в какой-то фазе обработки страницы что-то не то происходит.(Вопрос как это проследить?? )
Когда вешаем на кнопку immediate=true поля нормально заполняются.
...
Рейтинг: 0 / 0
вопрос по jsf и primefaces
    #39038192
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) action="CDIBean.Save()" - вероятно, опечатка. Без скобочек #{} не будет работать
2) type="submit" ajax="true" по-мокму, взаимоисключающие атрибуты. Если хочется аякса, то надо type="button"
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос по jsf и primefaces
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]