Селектор PrimeFaces, который включает в себя ввод компонентов со скрытыми полями ввода - PullRequest
1 голос
/ 11 марта 2020

Я хотел бы использовать PrimeFaces Selectors для обработки всех входных компонентов в определенной группе, которая включает в себя несколько полей p:rating.

Я свел к минимуму свой вариант использования до, X HTML:

<h:form>
  <h:panelGroup class="myGroup">
    <p:rating value="#{myBean.rating}"/>
    <p:commandButton value="Save"
                     process="@(.myGroup :input)"
                     action="#{myBean.save()}"/>
  </h:panelGroup>
</h:form>

Bean:

@Named
@ViewScoped
public class MyBean implements Serializable {

  private Integer rating; // Getter and setter are present

  public void save() {
    System.out.println("Rating: "+ rating);
  }

}

С указанным выше селектором оценка не обрабатывается. Если я изменю компонент на p:inputText, он работает. Если я удаляю атрибут процесса, он также работает. Я предполагаю, что это связано со скрытым вводом, который p:rating использует для своего значения.

Мой вопрос: вы можете создать селектор PrimeFaces, который включает в себя входы компонентов со скрытыми полями ввода?

1 Ответ

1 голос
/ 12 марта 2020

:hidden - это специальный Jquery селектор, не являющийся частью CSS.

См .: https://api.jquery.com/hidden-selector/

Поэтому измените ваш селектор на:

@(.myGroup :input :hidden)

Однако я сомневаюсь, что в вашем случае это имеет большое значение, но обязательно прочитайте раздел «Дополнительные примечания» в документации jQuery :hidden.

Альтернатива, которая работает как хорошо в вашем случае используется p:fragment:

<h:form>
  <p:fragment>
    <p:rating value="#{myBean.rating}"/>
    <p:commandButton value="Save"
                     action="#{myBean.save()}"/>
  </p:fragment>
</h:form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...